Commit Graph

39425 Commits (a0c0c2e5c29f54c69fa6735aca6ed3079f5f4190)

Author SHA1 Message Date
Junio C Hamano a0c0c2e5c2 Merge branch 'jn/clean-use-error-not-fprintf-on-stderr'
Some error messages in "git config" were emitted without calling
the usual error() facility.

* jn/clean-use-error-not-fprintf-on-stderr:
  config: use error() instead of fprintf(stderr, ...)
2015-05-11 14:23:53 -07:00
Junio C Hamano 5fa9e4c4f1 Merge branch 'tb/blame-resurrect-convert-to-git'
Some time ago, "git blame" (incorrectly) lost the convert_to_git()
call when synthesizing a fake "tip" commit that represents the
state in the working tree, which broke folks who record the history
with LF line ending to make their project portabile across
platforms while terminating lines in their working tree files with
CRLF for their platform.

* tb/blame-resurrect-convert-to-git:
  blame: CRLF in the working tree and LF in the repo
2015-05-11 14:23:52 -07:00
Junio C Hamano 1efadd79d6 Merge branch 'va/fix-git-p4-tests'
* va/fix-git-p4-tests:
  git-p4: t9814: prevent --chain-lint failure
2015-05-11 14:23:51 -07:00
Junio C Hamano ee2309dfe2 Merge branch 'ld/p4-case-fold'
* ld/p4-case-fold:
  git-p4: add failing tests for case-folding p4d
2015-05-11 14:23:50 -07:00
Junio C Hamano 352618287e Merge branch 'jk/rebase-quiet-noop'
"git rebase --quiet" was not quite quiet when there is nothing to
do.

* jk/rebase-quiet-noop:
  rebase: silence "git checkout" for noop rebase
2015-05-11 14:23:49 -07:00
Junio C Hamano 0495983679 Merge branch 'va/p4-client-path'
git p4 attempts to better handle branches in Perforce.

* va/p4-client-path:
  git-p4: improve client path detection when branches are used
  t9801: check git-p4's branch detection with client spec enabled
2015-05-11 14:23:48 -07:00
Junio C Hamano 331fe94fed Merge branch 'mm/add-p-split-error'
When "add--interactive" splits a hunk into two overlapping hunks
and then let the user choose only one, it sometimes feeds an
incorrect patch text to "git apply".  Add tests to demonstrate
this.

I have a slight suspicion that this may be $gmane/87202 coming back
and biting us (I seem to have said "let's run with this and see
what happens" back then).

* mm/add-p-split-error:
  stash -p: demonstrate failure of split with mixed y/n
  t3904-stash-patch: factor PERL prereq at the top of the file
  t3904-stash-patch: fix test description
  add -p: demonstrate failure when running 'edit' after a split
  t3701-add-interactive: simplify code
2015-05-11 14:23:47 -07:00
Junio C Hamano 7e98292653 Merge branch 'tb/t0027-crlf'
More line-ending tests.

* tb/t0027-crlf:
  t0027: Add repoMIX and LF_nul
  t0027: support NATIVE_CRLF platforms
  t0027: cleanup: rename functions; avoid non-leading TABs
2015-05-11 14:23:47 -07:00
Junio C Hamano 120c585b22 Merge branch 'ls/p4-changes-block-size'
"git p4" learned "--changes-block-size <n>" to read the changes in
chunks from Perforce, instead of making one call to "p4 changes"
that may trigger "too many rows scanned" error from Perforce.

* ls/p4-changes-block-size:
  git-p4: use -m when running p4 changes
2015-05-11 14:23:46 -07:00
Junio C Hamano 789e98df82 Merge branch 'jc/plug-fmt-merge-msg-leak'
* jc/plug-fmt-merge-msg-leak:
  fmt-merge-msg: plug small leak of commit buffer
2015-05-11 14:23:46 -07:00
Junio C Hamano eb10a85098 Merge branch 'nd/slim-index-pack-memory-usage'
Memory usage of "git index-pack" has been trimmed by tens of
per-cent.

* nd/slim-index-pack-memory-usage:
  index-pack: kill union delta_base to save memory
  index-pack: reduce object_entry size to save memory
2015-05-11 14:23:44 -07:00
Junio C Hamano 84e55dcb34 Merge branch 'jk/still-interesting'
"git rev-list --objects $old --not --all" to see if everything that
is reachable from $old is already connected to the existing refs
was very inefficient.

* jk/still-interesting:
  limit_list: avoid quadratic behavior from still_interesting
2015-05-11 14:23:43 -07:00
Junio C Hamano 6cc983d0ad Merge branch 'jk/reading-packed-refs'
An earlier rewrite to use strbuf_getwholeline() instead of fgets(3)
to read packed-refs file revealed that the former is unacceptably
inefficient.

* jk/reading-packed-refs:
  t1430: add another refs-escape test
  read_packed_refs: avoid double-checking sane refs
  strbuf_getwholeline: use getdelim if it is available
  strbuf_getwholeline: avoid calling strbuf_grow
  strbuf_addch: avoid calling strbuf_grow
  config: use getc_unlocked when reading from file
  strbuf_getwholeline: use getc_unlocked
  git-compat-util: add fallbacks for unlocked stdio
  strbuf_getwholeline: use getc macro
2015-05-11 14:23:42 -07:00
Junio C Hamano 66ff763ebb Merge branch 'lm/squelch-bg-progress'
Many long-running operations show progress eye-candy, even when
they are later backgrounded.  Hide the eye-candy when the process
is sent to the background instead.

* lm/squelch-bg-progress:
  compat/mingw: stubs for getpgid() and tcgetpgrp()
  progress: no progress in background
2015-05-11 14:23:42 -07:00
Junio C Hamano cedeffeee0 Merge branch 'jk/sha1-file-reduce-useless-warnings'
* jk/sha1-file-reduce-useless-warnings:
  sha1_file: squelch "packfile cannot be accessed" warnings
2015-05-11 14:23:41 -07:00
Junio C Hamano 68a2e6a2c8 Merge branch 'nd/multiple-work-trees'
A replacement for contrib/workdir/git-new-workdir that does not
rely on symbolic links and make sharing of objects and refs safer
by making the borrowee and borrowers aware of each other.

* nd/multiple-work-trees: (41 commits)
  prune --worktrees: fix expire vs worktree existence condition
  t1501: fix test with split index
  t2026: fix broken &&-chain
  t2026 needs procondition SANITY
  git-checkout.txt: a note about multiple checkout support for submodules
  checkout: add --ignore-other-wortrees
  checkout: pass whole struct to parse_branchname_arg instead of individual flags
  git-common-dir: make "modules/" per-working-directory directory
  checkout: do not fail if target is an empty directory
  t2025: add a test to make sure grafts is working from a linked checkout
  checkout: don't require a work tree when checking out into a new one
  git_path(): keep "info/sparse-checkout" per work-tree
  count-objects: report unused files in $GIT_DIR/worktrees/...
  gc: support prune --worktrees
  gc: factor out gc.pruneexpire parsing code
  gc: style change -- no SP before closing parenthesis
  checkout: clean up half-prepared directories in --to mode
  checkout: reject if the branch is already checked out elsewhere
  prune: strategies for linked checkouts
  checkout: support checking out into a new working directory
  ...
2015-05-11 14:23:39 -07:00
Junio C Hamano 17c7f4d8e4 Merge branch 'pt/credential-xdg'
Tweak the sample "store" backend of the credential helper to honor
XDG configuration file locations when specified.

* pt/credential-xdg:
  t0302: "unreadable" test needs POSIXPERM
  t0302: test credential-store support for XDG_CONFIG_HOME
  git-credential-store: support XDG_CONFIG_HOME
  git-credential-store: support multiple credential files
2015-05-11 14:23:38 -07:00
Junio C Hamano 8440f74997 First batch for 2.5 cycle
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-05-05 21:13:30 -07:00
Junio C Hamano e3b199aef1 Merge branch 'jk/prune-mtime'
Access to objects in repositories that borrow from another one on a
slow NFS server unnecessarily got more expensive due to recent code
becoming more cautious in a naive way not to lose objects to pruning.

* jk/prune-mtime:
  sha1_file: only freshen packs once per run
  sha1_file: freshen pack objects before loose
  reachable: only mark local objects as recent
2015-05-05 21:00:37 -07:00
Junio C Hamano 6749850769 Merge branch 'mm/usage-log-l-can-take-regex'
Documentation fix.

* mm/usage-log-l-can-take-regex:
  log -L: improve error message on malformed argument
  Documentation: change -L:<regex> to -L:<funcname>
2015-05-05 21:00:36 -07:00
Junio C Hamano 64c9e02765 Merge branch 'ep/fix-test-lib-functions-report'
* ep/fix-test-lib-functions-report:
  test-lib-functions.sh: fix the second argument to some helper functions
2015-05-05 21:00:36 -07:00
Junio C Hamano 2e1dfd62dc Merge branch 'cn/bom-in-gitignore'
Teach the codepaths that read .gitignore and .gitattributes files
that these files encoded in UTF-8 may have UTF-8 BOM marker at the
beginning; this makes it in line with what we do for configuration
files already.

* cn/bom-in-gitignore:
  attr: skip UTF8 BOM at the beginning of the input file
  config: use utf8_bom[] from utf.[ch] in git_parse_source()
  utf8-bom: introduce skip_utf8_bom() helper
  add_excludes_from_file: clarify the bom skipping logic
  dir: allow a BOM at the beginning of exclude files
2015-05-05 21:00:34 -07:00
Junio C Hamano 39a5d50d62 Merge branch 'jc/epochtime-wo-tz'
"git commit --date=now" or anything that relies on approxidate lost
the daylight-saving-time offset.

* jc/epochtime-wo-tz:
  parse_date_basic(): let the system handle DST conversion
  parse_date_basic(): return early when given a bogus timestamp
2015-05-05 21:00:33 -07:00
Junio C Hamano ef8163ce57 Merge branch 'nd/t1509-chroot-test'
Correct test bitrot.

* nd/t1509-chroot-test:
  t1509: update prepare script to be able to run t1509 in chroot again
2015-05-05 21:00:32 -07:00
Junio C Hamano 67e5a00d0a Merge branch 'oh/fix-config-default-user-name-section'
The default $HOME/.gitconfig file created upon "git config --global"
that edits it had incorrectly spelled user.name and user.email
entries in it.

* oh/fix-config-default-user-name-section:
  config: fix settings in default_user_config template
2015-05-05 21:00:31 -07:00
Junio C Hamano 1156097296 Merge branch 'jk/type-from-string-gently'
"git cat-file bl $blob" failed to barf even though there is no
object type that is "bl".

* jk/type-from-string-gently:
  type_from_string_gently: make sure length matches
2015-05-05 21:00:29 -07:00
Junio C Hamano b9032b284f Merge branch 'sb/test-bitmap-free-at-end'
* sb/test-bitmap-free-at-end:
  pack-bitmap.c: fix a memleak
2015-05-05 21:00:28 -07:00
Junio C Hamano a9d00b662f Merge branch 'ld/p4-filetype-detection'
* ld/p4-filetype-detection:
  git-p4: fix filetype detection on files opened exclusively
  git-p4: small fix for locked-file-move-test
  git-p4: fix small bug in locked test scripts
2015-05-05 21:00:28 -07:00
Junio C Hamano e971a1f9d5 Merge branch 'ts/checkout-advice-plural'
* ts/checkout-advice-plural:
  checkout: call a single commit "it" intead of "them"
2015-05-05 21:00:27 -07:00
Junio C Hamano 7502b230ce Merge branch 'jk/init-core-worktree-at-root'
We avoid setting core.worktree when the repository location is the
".git" directory directly at the top level of the working tree, but
the code misdetected the case in which the working tree is at the
root level of the filesystem (which arguably is a silly thing to
do, but still valid).

* jk/init-core-worktree-at-root:
  init: don't set core.worktree when initializing /.git
2015-05-05 21:00:27 -07:00
Junio C Hamano b02a94d663 Merge branch 'mh/show-branch-topic'
"git show-branch --topics HEAD" (with no other arguments) did not
do anything interesting.  Instead, contrast the given revision
against all the local branches by default.

* mh/show-branch-topic:
  show-branch: show all local heads when only giving one rev along --topics
2015-05-05 21:00:26 -07:00
Junio C Hamano 8ff1ddd717 Merge branch 'sb/line-log-plug-pairdiff-leak'
* sb/line-log-plug-pairdiff-leak:
  line-log.c: fix a memleak
2015-05-05 21:00:25 -07:00
Junio C Hamano 03761c922b Merge branch 'jc/diff-no-index-d-f'
The usual "git diff" when seeing a file turning into a directory
showed a patchset to remove the file and create all files in the
directory, but "git diff --no-index" simply refused to work.  Also,
when asked to compare a file and a directory, imitate POSIX "diff"
and compare the file with the file with the same name in the
directory, instead of refusing to run.

* jc/diff-no-index-d-f:
  diff-no-index: align D/F handling with that of normal Git
  diff-no-index: DWIM "diff D F" into "diff D/F F"
2015-05-05 21:00:24 -07:00
Junio C Hamano a916cb5fb4 Merge branch 'bc/object-id'
Identify parts of the code that knows that we use SHA-1 hash to
name our objects too much, and use (1) symbolic constants instead
of hardcoded 20 as byte count and/or (2) use struct object_id
instead of unsigned char [20] for object names.

* bc/object-id:
  apply: convert threeway_stage to object_id
  patch-id: convert to use struct object_id
  commit: convert parts to struct object_id
  diff: convert struct combine_diff_path to object_id
  bulk-checkin.c: convert to use struct object_id
  zip: use GIT_SHA1_HEXSZ for trailers
  archive.c: convert to use struct object_id
  bisect.c: convert leaf functions to use struct object_id
  define utility functions for object IDs
  define a structure for object IDs
2015-05-05 21:00:23 -07:00
Jonathan Nieder 95d621217a config: use error() instead of fprintf(stderr, ...)
The die() / error() / warning() helpers put a fatal: / error: /
warning: prefix in front of the error message they print describing
the message's severity, which users are likely to be accustomed to
seeing these days.

This change will also be useful when marking the message for
translation: the argument to error() includes no newline at the end,
so it is less fussy for translators to translate without lines running
together in the translated output.

While we're here, start the error messages with a lowercase letter to
match the usual typography of error messages.

A quick web search and a code search at codesearch.debian.net finds no
scripts trying to parse these error messages, so this change should be
safe.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-05-04 14:38:15 -07:00
Torsten Bögershausen 4bf256d67a blame: CRLF in the working tree and LF in the repo
A typical setup under Windows is to set core.eol to CRLF, and text
files are marked as "text" in .gitattributes, or core.autocrlf is
set to true.

After 4d4813a5 "git blame" no longer works as expected for such a
set-up.  Every line is annotated as "Not Committed Yet", even though
the working directory is clean.  This is because the commit removed
the conversion in blame.c for all files, with or without CRLF in the
repo.

Having files with CRLF in the repo and core.autocrlf=input is a
temporary situation, and the files, if committed as is, will be
normalized in the repo, which _will_ be a notable change.  Blaming
them with "Not Committed Yet" is the right result.  Revert commit
4d4813a5 which was a misguided attempt to "solve" a non-problem.

Add two test cases in t8003 to verify the correct CRLF conversion.

Suggested-By: Stepan Kasal <kasal@ucw.cz>
Signed-off-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-05-03 11:00:10 -07:00
Junio C Hamano 3d4a3ffe64 Git 2.4
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-04-30 11:25:06 -07:00
Junio C Hamano 0ab00b9464 Merge branch 'mh/multimail-renewal'
* mh/multimail-renewal:
  Update git-multimail to version 1.0.2
2015-04-28 13:01:29 -07:00
Junio C Hamano 3f5872603d Merge branch 'mg/show-notes-doc'
Documentation fix.

* mg/show-notes-doc:
  rev-list-options.txt: complete sentence about notes matching
2015-04-28 13:00:20 -07:00
Junio C Hamano b7990520bc Merge branch 'nd/versioncmp-prereleases'
* nd/versioncmp-prereleases:
  git tag: mention versionsort.prereleaseSuffix in manpage
2015-04-28 13:00:19 -07:00
Junio C Hamano 5b9496768f Merge branch 'mg/status-v-v'
* mg/status-v-v:
  status: document the -v/--verbose option
2015-04-28 13:00:18 -07:00
Luke Diamand e80967b287 git-p4: add failing tests for case-folding p4d
When p4d runs on a case-folding OS, git-p4 can end up getting
very confused. This adds failing tests to demonstrate the problem.

Signed-off-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-04-28 12:19:43 -07:00
Luke Diamand 896e700ad9 git-p4: t9814: prevent --chain-lint failure
Use test_lazy_prereq to setup prerequisites for the p4 move
test. This both makes the test simpler and clearer, and also
means it no longer fails the new --chain-lint tests.

Suggested-by: Jeff King <peff@peff.net>
Signed-off-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-04-28 12:16:01 -07:00
Jeff King 22946a9426 rebase: silence "git checkout" for noop rebase
When the branch to be rebased is already up to date, we
"git checkout" the branch, print an "up to date" message,
and end the rebase early. However, our checkout may print
"Switched to branch 'foo'" or "Already on 'foo'", even if
the user has asked for "--quiet".

We should avoid printing these messages at all, "--quiet" or
no. Since the rebase is a noop, this checkout can be seen as
optimizing out these other two checkout operations (that
happen in a real rebase):

  1. Moving to the detached HEAD to start the rebase; we
     always feed "-q" to checkout there, and instead rely on
     our own custom message (which respects --quiet).

  2. Finishing a rebase, where we move to the final branch.
     Here we actually use update-ref rather than
     git-checkout, and produce no messages.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-04-28 11:38:40 -07:00
Michael Haggerty 36bf6d4697 Update git-multimail to version 1.0.2
The only changes are to the README files, most notably the list of
maintainers and the project URL.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-04-28 11:37:09 -07:00
Junio C Hamano fb3e7d5515 Sync with 2.3.7 2015-04-27 12:26:21 -07:00
Junio C Hamano 16018ae5fb Git 2.3.7
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-04-27 12:25:36 -07:00
Junio C Hamano ad34ad614d Merge branch 'tb/connect-ipv6-parse-fix' into maint
An earlier update to the parser that disects a URL broke an
address, followed by a colon, followed by an empty string (instead
of the port number), e.g. ssh://example.com:/path/to/repo.

* tb/connect-ipv6-parse-fix:
  connect.c: ignore extra colon after hostname
2015-04-27 12:23:54 -07:00
Junio C Hamano 89ba311df3 Merge branch 'ma/bash-completion-leaking-x' into maint
The completion script (in contrib/) contaminated global namespace
and clobbered on a shell variable $x.

* ma/bash-completion-leaking-x:
  completion: fix global bash variable leak on __gitcompappend
2015-04-27 12:23:51 -07:00
Junio C Hamano 631f6f1d47 Merge branch 'jc/push-cert' into maint
The "git push --signed" protocol extension did not limit what the
"nonce" that is a server-chosen string can contain or how long it
can be, which was unnecessarily lax.  Limit both the length and the
alphabet to a reasonably small space that can still have enough
entropy.

* jc/push-cert:
  push --signed: tighten what the receiving end can ask to sign
2015-04-27 12:23:50 -07:00