summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-08-25Merge branch 'cb/open-noatime-clear-errno'Libravatar Junio C Hamano1-1/+4
When trying to see that an object does not exist, a state errno leaked from our "first try to open a packfile with O_NOATIME and then if it fails retry without it" logic on a system that refuses O_NOATIME. This confused us and caused us to die, saying that the packfile is unreadable, when we should have just reported that the object does not exist in that packfile to the caller. * cb/open-noatime-clear-errno: git_open_noatime: return with errno=0 on success
2015-08-25Merge branch 'mh/tempfile'Libravatar Junio C Hamano18-630/+969
The "lockfile" API has been rebuilt on top of a new "tempfile" API. * mh/tempfile: credential-cache--daemon: use tempfile module credential-cache--daemon: delete socket from main() gc: use tempfile module to handle gc.pid file lock_repo_for_gc(): compute the path to "gc.pid" only once diff: use tempfile module setup_temporary_shallow(): use tempfile module write_shared_index(): use tempfile module register_tempfile(): new function to handle an existing temporary file tempfile: add several functions for creating temporary files prepare_tempfile_object(): new function, extracted from create_tempfile() tempfile: a new module for handling temporary files commit_lock_file(): use get_locked_file_path() lockfile: add accessor get_lock_file_path() lockfile: add accessors get_lock_file_fd() and get_lock_file_fp() create_bundle(): duplicate file descriptor to avoid closing it twice lockfile: move documentation to lockfile.h and lockfile.c
2015-08-25Merge branch 'pt/am-builtin-options'Libravatar Junio C Hamano3-10/+166
After "git am --opt1" stops, running "git am --opt2" pays attention to "--opt2" only for the patch that caused the original invocation to stop. * pt/am-builtin-options: am: let --signoff override --no-signoff am: let command-line options override saved options test_terminal: redirect child process' stdin to a pty
2015-08-25Merge branch 'dt/refs-pseudo'Libravatar Junio C Hamano5-56/+163
To prepare for allowing a different "ref" backend to be plugged in to the system, update_ref()/delete_ref() have been taught about ref-like things like MERGE_HEAD that are per-worktree (they will always be written to the filesystem inside $GIT_DIR). * dt/refs-pseudo: pseudoref: check return values from read_ref() sequencer: replace write_cherry_pick_head with update_ref bisect: use update_ref pseudorefs: create and use pseudoref update and delete functions refs: add ref_type function refs: introduce pseudoref and per-worktree ref concepts
2015-08-25Merge branch 'dt/notes-multiple'Libravatar Junio C Hamano4-12/+120
When linked worktree is used, simultaneous "notes merge" instances for the same ref in refs/notes/* are prevented from stomping on each other. * dt/notes-multiple: notes: handle multiple worktrees worktrees: add find_shared_symref
2015-08-25Merge branch 'nd/dwim-wildcards-as-pathspecs'Libravatar Junio C Hamano1-1/+1
Test updates for Windows. * nd/dwim-wildcards-as-pathspecs: t2019: skip test requiring '*' in a file name non Windows
2015-08-25Merge branch 'jk/long-error-messages'Libravatar Junio C Hamano3-29/+21
The codepath to produce error messages had a hard-coded limit to the size of the message, primarily to avoid memory allocation while calling die(). * jk/long-error-messages: vreportf: avoid intermediate buffer vreportf: report to arbitrary filehandles
2015-08-25Merge branch 'ee/clean-remove-dirs'Libravatar Junio C Hamano1-1/+1
Test updates for Windows. * ee/clean-remove-dirs: t7300-clean: require POSIXPERM for chmod 0 test
2015-08-25Merge branch 'jh/strbuf-read-use-read-in-full'Libravatar Junio C Hamano1-5/+5
strbuf_read() used to have one extra iteration (and an unnecessary strbuf_grow() of 8kB), which was eliminated. * jh/strbuf-read-use-read-in-full: strbuf_read(): skip unnecessary strbuf_grow() at eof
2015-08-19Sync with maintLibravatar Junio C Hamano1-0/+49
* maint: Start preparing for 2.5.1
2015-08-19Fourth batch for 2.6Libravatar Junio C Hamano1-1/+34
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-08-19Merge branch 'tb/complete-rebase-i-edit-todo'Libravatar Junio C Hamano1-1/+4
The command-line completion script (in contrib/) has been updated. * tb/complete-rebase-i-edit-todo: completion: offer '--edit-todo' during interactive rebase
2015-08-19Merge branch 'jk/git-path'Libravatar Junio C Hamano30-363/+465
git_path() and mkpath() are handy helper functions but it is easy to misuse, as the callers need to be careful to keep the number of active results below 4. Their uses have been reduced. * jk/git-path: memoize common git-path "constant" files get_repo_path: refactor path-allocation find_hook: keep our own static buffer refs.c: remove_empty_directories can take a strbuf refs.c: avoid git_path assignment in lock_ref_sha1_basic refs.c: avoid repeated git_path calls in rename_tmp_log refs.c: simplify strbufs in reflog setup and writing path.c: drop git_path_submodule refs.c: remove extra git_path calls from read_loose_refs remote.c: drop extraneous local variable from migrate_file prefer mkpathdup to mkpath in assignments prefer git_pathdup to git_path in some possibly-dangerous cases add_to_alternates_file: don't add duplicate entries t5700: modernize style cache.h: complete set of git_path_submodule helpers cache.h: clarify documentation for git_path, et al
2015-08-19Merge branch 'jc/finalize-temp-file'Libravatar Junio C Hamano5-15/+12
Long overdue micro clean-up. * jc/finalize-temp-file: sha1_file.c: rename move_temp_to_file() to finalize_object_file()
2015-08-19Merge branch 'ps/guess-repo-name-at-root'Libravatar Junio C Hamano2-19/+61
"git clone $URL", when cloning from a site whose sole purpose is to host a single repository (hence, no path after <scheme>://<site>/), tried to use the site name as the new repository name, but did not remove username or password when <site> part was of the form <user>@<pass>:<host>. The code is taught to redact these. * ps/guess-repo-name-at-root: clone: abort if no dir name could be guessed clone: do not use port number as dir name clone: do not include authentication data in guessed dir
2015-08-19Merge branch 'jk/guess-repo-name-regression-fix'Libravatar Junio C Hamano2-1/+108
"git clone $URL" in recent releases of Git contains a regression in the code that invents a new repository name incorrectly based on the $URL. This has been corrected. * jk/guess-repo-name-regression-fix: clone: use computed length in guess_dir_name clone: add tests for output directory
2015-08-19Merge branch 'jk/negative-hiderefs'Libravatar Junio C Hamano3-22/+56
A negative !ref entry in multi-value transfer.hideRefs configuration can be used to say "don't hide this one". * jk/negative-hiderefs: refs: support negative transfer.hideRefs docs/config.txt: reorder hideRefs config
2015-08-19Merge branch 'jk/test-with-x'Libravatar Junio C Hamano1-2/+11
Running tests with the "-x" option to make them verbose had some unpleasant interactions with other features of the test suite. * jk/test-with-x: test-lib: disable trace when test is not verbose test-lib: turn off "-x" tracing during chain-lint check
2015-08-19Merge branch 'ps/t1509-chroot-test-fixup'Libravatar Junio C Hamano1-4/+4
t1509 test that requires a dedicated VM environment had some bitrot, which has been corrected. * ps/t1509-chroot-test-fixup: tests: fix cleanup after tests in t1509-root-worktree tests: fix broken && chains in t1509-root-worktree
2015-08-19Merge branch 'sb/check-return-from-read-ref'Libravatar Junio C Hamano1-2/+6
* sb/check-return-from-read-ref: transport-helper: die on errors reading refs.
2015-08-19Merge branch 'mm/pull-upload-pack'Libravatar Junio C Hamano1-1/+1
"git pull" in recent releases of Git has a regression in the code that allows custom path to the --upload-pack=<program>. This has been corrected. Note that this is irrelevant for 'master' with "git pull" rewritten in C. * mm/pull-upload-pack: pull.sh: quote $upload_pack when passing it to git-fetch
2015-08-19Start preparing for 2.5.1Libravatar Junio C Hamano2-1/+50
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-08-19Merge branch 'ta/docfix-index-format-tech' into maintLibravatar Junio C Hamano1-1/+1
* ta/docfix-index-format-tech: typofix for index-format.txt
2015-08-19Merge branch 'sb/parse-options-codeformat' into maintLibravatar Junio C Hamano1-1/+1
* sb/parse-options-codeformat: parse-options: align curly braces for all options
2015-08-19Merge branch 'sb/remove-unused-var-from-builtin-add' into maintLibravatar Junio C Hamano1-2/+0
* sb/remove-unused-var-from-builtin-add: add: remove dead code
2015-08-19Merge branch 'kn/tag-doc-fix' into maintLibravatar Junio C Hamano1-1/+0
* kn/tag-doc-fix: Documentation/tag: remove double occurance of "<pattern>"
2015-08-19Merge branch 'es/doc-clean-outdated-tools' into maintLibravatar Junio C Hamano2-117/+9
* es/doc-clean-outdated-tools: Documentation/git-tools: retire manually-maintained list Documentation/git-tools: drop references to defunct tools Documentation/git-tools: fix item text formatting Documentation/git-tools: improve discoverability of Git wiki Documentation/git: drop outdated Cogito reference
2015-08-19Merge branch 'nd/export-worktree' into maintLibravatar Junio C Hamano2-0/+19
Running an aliased command from a subdirectory when the .git thing in the working tree is a gitfile pointing elsewhere did not work. * nd/export-worktree: setup: set env $GIT_WORK_TREE when work tree is set, like $GIT_DIR
2015-08-19Merge branch 'mh/fast-import-optimize-current-from' into maintLibravatar Junio C Hamano1-12/+17
Often a fast-import stream builds a new commit on top of the previous commit it built, and it often unconditionally emits a "from" command to specify the first parent, which can be omitted in such a case. This caused fast-import to forget the tree of the previous commit and then re-read it from scratch, which was inefficient. Optimize for this common case. * mh/fast-import-optimize-current-from: fast-import: do less work when given "from" matches current branch head
2015-08-19Merge branch 'ib/scripted-parse-opt-better-hint-string' into maintLibravatar Junio C Hamano3-68/+92
The "rev-parse --parseopt" mode parsed the option specification and the argument hint in a strange way to allow '=' and other special characters in the option name while forbidding them from the argument hint. This made it impossible to define an option like "--pair <key>=<value>" with "pair=key=value" specification, which instead would have defined a "--pair=key <value>" option. * ib/scripted-parse-opt-better-hint-string: rev-parse --parseopt: allow [*=?!] in argument hints
2015-08-19Merge branch 'se/doc-checkout-ours-theirs' into maintLibravatar Junio C Hamano1-0/+15
A "rebase" replays changes of the local branch on top of something else, as such they are placed in stage #3 and referred to as "theirs", while the changes in the new base, typically a foreign work, are placed in stage #2 and referred to as "ours". Clarify the "checkout --ours/--theirs". * se/doc-checkout-ours-theirs: checkout: document subtlety around --ours/--theirs
2015-08-19Merge branch 'cb/uname-in-untracked' into maintLibravatar Junio C Hamano1-1/+1
An experimental "untracked cache" feature used uname(2) in a slightly unportable way. * cb/uname-in-untracked: untracked: fix detection of uname(2) failure
2015-08-19Merge branch 'as/sparse-checkout-removal' into maintLibravatar Junio C Hamano2-0/+56
"sparse checkout" misbehaved for a path that is excluded from the checkout when switching between branches that differ at the path. * as/sparse-checkout-removal: unpack-trees: don't update files with CE_WT_REMOVE set
2015-08-19Merge branch 'db/send-pack-user-signingkey' into maintLibravatar Junio C Hamano1-0/+3
The low-level "git send-pack" did not honor 'user.signingkey' configuration variable when sending a signed-push. * db/send-pack-user-signingkey: builtin/send-pack.c: respect user.signingkey
2015-08-19Merge branch 'jx/do-not-crash-receive-pack-wo-head' into maintLibravatar Junio C Hamano1-1/+1
An attempt to delete a ref by pushing into a repositorywhose HEAD symbolic reference points at an unborn branch that cannot be created due to ref D/F conflict (e.g. refs/heads/a/b exists, HEAD points at refs/heads/a) failed. * jx/do-not-crash-receive-pack-wo-head: receive-pack: crash when checking with non-exist HEAD
2015-08-19Merge branch 'da/subtree-date-confusion' into maintLibravatar Junio C Hamano2-1/+5
"git subtree" (in contrib/) depended on "git log" output to be stable, which was a no-no. Apply a workaround to force a particular date format. * da/subtree-date-confusion: contrib/subtree: ignore log.date configuration
2015-08-17Third batch for 2.6Libravatar Junio C Hamano1-0/+11
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-08-17Merge branch 'dt/untracked-sparse'Libravatar Junio C Hamano2-14/+122
Allow untracked cache (experimental) to be used when sparse checkout (experimental) is also in use. * dt/untracked-sparse: untracked-cache: support sparse checkout
2015-08-17Merge branch 'ta/docfix-index-format-tech'Libravatar Junio C Hamano1-1/+1
* ta/docfix-index-format-tech: typofix for index-format.txt
2015-08-17Merge branch 'mh/get-remote-group-fix'Libravatar Junio C Hamano1-8/+6
An off-by-one error made "git remote" to mishandle a remote with a single letter nickname. * mh/get-remote-group-fix: get_remote_group(): use skip_prefix() get_remote_group(): eliminate superfluous call to strcspn() get_remote_group(): rename local variable "space" to "wordlen" get_remote_group(): handle remotes with single-character names
2015-08-17Merge branch 'kd/pull-rebase-autostash'Libravatar Junio C Hamano2-1/+16
"git pull --rebase" has been taught to pay attention to rebase.autostash configuration. * kd/pull-rebase-autostash: pull: allow dirty tree when rebase.autostash enabled
2015-08-12credential-cache--daemon: use tempfile moduleLibravatar Michael Haggerty1-20/+6
Use the tempfile module to ensure that the socket file gets deleted on program exit. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-08-12credential-cache--daemon: delete socket from main()Libravatar Michael Haggerty1-1/+2
main() is responsible for cleaning up the socket in the case of errors, so it is reasonable to also make it responsible for cleaning it up when there are no errors. This change also makes the next step easier. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-08-12gc: use tempfile module to handle gc.pid fileLibravatar Michael Haggerty1-20/+5
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-08-12lock_repo_for_gc(): compute the path to "gc.pid" only onceLibravatar Michael Haggerty1-3/+6
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-08-12diff: use tempfile moduleLibravatar Michael Haggerty1-23/+23
Also add some code comments explaining how the fields in "struct diff_tempfile" are used. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-08-12Second batch for 2.6Libravatar Junio C Hamano1-0/+25
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-08-12Merge branch 'sb/remove-unused-var-from-builtin-add'Libravatar Junio C Hamano1-2/+0
* sb/remove-unused-var-from-builtin-add: add: remove dead code
2015-08-12Merge branch 'sb/parse-options-codeformat'Libravatar Junio C Hamano1-1/+1
* sb/parse-options-codeformat: parse-options: align curly braces for all options
2015-08-12Merge branch 'dt/unpack-trees-cache-tree-revalidate'Libravatar Junio C Hamano2-0/+32
The code to perform multi-tree merges has been taught to repopulate the cache-tree upon a successful merge into the index, so that subsequent "diff-index --cached" (hence "status") and "write-tree" (hence "commit") will go faster. The same logic in "git checkout" may now be removed, but that is a separate issue. * dt/unpack-trees-cache-tree-revalidate: unpack-trees: populate cache-tree on successful merge