summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2013-10-18git-merge: document the -S optionLibravatar Nicolas Vigier1-1/+5
The option to gpg sign a merge commit is available but was not documented. Use wording from the git-commit(1) manpage. Signed-off-by: Nicolas Vigier <boklm@mars-attacks.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-10-17Start preparing for 1.8.4.2Libravatar Junio C Hamano2-1/+51
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-10-17Merge branch 'jk/upload-pack-keepalive' into maintLibravatar Junio C Hamano2-1/+35
* jk/upload-pack-keepalive: upload-pack: bump keepalive default to 5 seconds upload-pack: send keepalive packets during pack computation
2013-10-17Merge branch 'bc/http-backend-allow-405' into maintLibravatar Junio C Hamano1-2/+4
* bc/http-backend-allow-405: http-backend: provide Allow header for 405
2013-10-17Merge branch 'jc/cvsserver-perm-bit-fix' into maintLibravatar Junio C Hamano1-1/+1
* jc/cvsserver-perm-bit-fix: cvsserver: pick up the right mode bits
2013-10-17Merge branch 'js/add-i-mingw' into maintLibravatar Junio C Hamano1-1/+1
* js/add-i-mingw: add--interactive: fix external command invocation on Windows
2013-10-17Merge branch 'nd/git-dir-pointing-at-gitfile' into maintLibravatar Junio C Hamano2-5/+8
* nd/git-dir-pointing-at-gitfile: Make setup_git_env() resolve .git file when $GIT_DIR is not specified
2013-10-17Merge branch 'jk/has-sha1-file-retry-packed' into maintLibravatar Junio C Hamano1-1/+4
* jk/has-sha1-file-retry-packed: has_sha1_file: re-check pack directory before giving up
2013-10-17Merge branch 'ap/commit-author-mailmap' into maintLibravatar Junio C Hamano2-1/+18
* ap/commit-author-mailmap: commit: search author pattern against mailmap
2013-10-17Merge branch 'es/rebase-i-no-abbrev' into maintLibravatar Junio C Hamano2-2/+117
* es/rebase-i-no-abbrev: rebase -i: fix short SHA-1 collision t3404: rebase -i: demonstrate short SHA-1 collision t3404: make tests more self-contained Conflicts: t/t3404-rebase-interactive.sh
2013-10-17Merge branch 'rt/rebase-p-no-merge-summary' into maintLibravatar Junio C Hamano2-1/+25
* rt/rebase-p-no-merge-summary: rebase --preserve-merges: ignore "merge.log" config
2013-10-17Merge branch 'es/rebase-i-respect-core-commentchar' into maintLibravatar Junio C Hamano1-1/+1
* es/rebase-i-respect-core-commentchar: rebase -i: fix cases ignoring core.commentchar
2013-10-17t4254: modernize testsLibravatar SZEDER Gábor1-21/+15
- Don't start tests with 'test $? = 0' to catch preparation done outside the test_expect_success block. - Move writing the bogus patch and the expected output into the appropriate test_expect_success blocks. - Use the test_must_fail helper instead of manually checking for non-zero exit code. - Use the debug-friendly test_path_is_file helper instead of 'test -f'. - No space after '>'. Signed-off-by: SZEDER Gábor <szeder@ira.uka.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-10-15git-prune-packed.txt: fix reference to GIT_OBJECT_DIRECTORYLibravatar Steffen Prohaska1-1/+1
git-prune-packed operates on GIT_OBJECT_DIRECTORY, not GIT_OBJECT_DIR. Signed-off-by: Steffen Prohaska <prohaska@zib.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-10-14clone --branch: refuse to clone if upstream repo is emptyLibravatar Ralf Thielow2-1/+11
Since 920b691 (clone: refuse to clone if --branch points to bogus ref) we refuse to clone with option "-b" if the specified branch does not exist in the (non-empty) upstream. If the upstream repository is empty, the branch doesn't exist, either. So refuse the clone too. Reported-by: Robert Mitwicki <robert.mitwicki@opensoftware.pl> Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com> Acked-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
2013-09-26Git 1.8.4.1Libravatar Jonathan Nieder3-15/+37
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
2013-09-26Merge branch 'mm/rebase-continue-freebsd-WB' into maintLibravatar Jonathan Nieder1-1/+10
* mm/rebase-continue-freebsd-WB: rebase: fix run_specific_rebase's use of "return" on FreeBSD
2013-09-26Merge branch 'km/svn-1.8-serf-only' into maintLibravatar Jonathan Nieder2-3/+34
* km/svn-1.8-serf-only: Git.pm: revert _temp_cache use of temp_is_locked git-svn: allow git-svn fetching to work using serf Git.pm: add new temp_is_locked function
2013-09-26Merge branch 'js/xread-in-full' into maintLibravatar Jonathan Nieder1-1/+1
* js/xread-in-full: stream_to_pack: xread does not guarantee to read all requested bytes
2013-09-26Merge branch 'bc/send-email-ssl-die-message-fix' into maintLibravatar Jonathan Nieder1-1/+1
* bc/send-email-ssl-die-message-fix: send-email: don't call methods on undefined values
2013-09-24git-remote-mediawiki: bugfix for pages w/ >500 revisionsLibravatar Benoit Person2-2/+35
Mediawiki introduces a new API for queries w/ more than 500 results in version 1.21. That change triggered an infinite loop while cloning a mediawiki with such a page. The latest API renamed and moved the "continuing" information in the response, necessary to build the next query. The code failed to retrieve that information but still detected that it was in a "continuing query". As a result, it launched the same query over and over again. If a "continuing" information is detected in the response (old or new), the next query is updated accordingly. If not, we quit assuming it's not a continuing query. Reported-by: Benjamin Cathey Signed-off-by: Benoit Person <benoit.person@gmail.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
2013-09-18Start preparing for 1.8.4.1Libravatar Junio C Hamano2-1/+51
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-09-18Merge branch 'bc/completion-for-bash-3.0' into maintLibravatar Junio C Hamano3-3/+7
Some people still use rather old versions of bash, which cannot grok some constructs like 'printf -v varname' the prompt and completion code started to use recently. * bc/completion-for-bash-3.0: contrib/git-prompt.sh: handle missing 'printf -v' more gracefully t9902-completion.sh: old Bash still does not support array+=('') notation git-completion.bash: use correct Bash/Zsh array length syntax
2013-09-18Merge branch 'mm/no-shell-escape-in-die-message' into maintLibravatar Junio C Hamano2-1/+14
Fixes a minor bug in "git rebase -i" (there could be others, as the root cause is pretty generic) where the code feeds a random, data dependeant string to 'echo' and expects it to come out literally. * mm/no-shell-escape-in-die-message: die_with_status: use "printf '%s\n'", not "echo"
2013-09-18Merge branch 'jl/some-submodule-config-are-not-boolean' into maintLibravatar Junio C Hamano2-0/+16
* jl/some-submodule-config-are-not-boolean: avoid segfault on submodule.*.path set to an empty "true"
2013-09-18Merge branch 'tr/log-full-diff-keep-true-parents' into maintLibravatar Junio C Hamano8-3/+134
Output from "git log --full-diff -- <pathspec>" looked strange, because comparison was done with the previous ancestor that touched the specified <pathspec>, causing the patches for paths outside the pathspec to show more than the single commit has changed. * tr/log-full-diff-keep-true-parents: log: use true parents for diff when walking reflogs log: use true parents for diff even when rewriting
2013-09-18Merge branch 'jc/transport-do-not-use-connect-twice-in-fetch' into maintLibravatar Junio C Hamano4-31/+134
The auto-tag-following code in "git fetch" tries to reuse the same transport twice when the serving end does not cooperate and does not give tags that point to commits that are asked for as part of the primary transfer. Unfortunately, Git-aware transport helper interface is not designed to be used more than once, hence this does not work over smart-http transfer. * jc/transport-do-not-use-connect-twice-in-fetch: builtin/fetch.c: Fix a sparse warning fetch: work around "transport-take-over" hack fetch: refactor code that fetches leftover tags fetch: refactor code that prepares a transport fetch: rename file-scope global "transport" to "gtransport" t5802: add test for connect helper
2013-09-18Merge branch 'sp/clip-read-write-to-8mb' into maintLibravatar Junio C Hamano6-27/+26
Send a large request to read(2)/write(2) as a smaller but still reasonably large chunks, which would improve the latency when the operation needs to be killed and incidentally works around broken 64-bit systems that cannot take a 2GB write or read in one go. * sp/clip-read-write-to-8mb: Revert "compat/clipped-write.c: large write(2) fails on Mac OS X/XNU" xread, xwrite: limit size of IO to 8MB
2013-09-18Merge branch 'jk/mailmap-incomplete-line' into maintLibravatar Junio C Hamano2-13/+24
* jk/mailmap-incomplete-line: mailmap: handle mailmap blobs without trailing newlines
2013-09-17t7406-submodule-update: add missing &&Libravatar Tay Ray Chuan1-1/+1
322bb6e (2011 Aug 11) introduced a new subshell at the end of a test case but omitted a '&&' to join the two; fix this. Signed-off-by: Tay Ray Chuan <rctay89@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-09-12http-backend: provide Allow header for 405Libravatar Brian M. Carlson1-2/+4
The HTTP 1.1 standard requires an Allow header for 405 Method Not Allowed: The response MUST include an Allow header containing a list of valid methods for the requested resource. So provide such a header when we return a 405 to the user agent. Signed-off-by: Brian M. Carlson <sandals@crustytoothpaste.net> Reviewed-by: Jonathan Nieder <jrnieder@gmail.com> Acked-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-09-11Merge branch 'maint' of git://github.com/git-l10n/git-po into maintLibravatar Junio C Hamano1-11/+11
* 'maint' of git://github.com/git-l10n/git-po: l10n: de.po: use "das Tag" instead of "der Tag"
2013-09-11cvsserver: pick up the right mode bitsLibravatar Junio C Hamano1-1/+1
When determining the file mode from either ls-tree or diff-tree output, we used to grab these octal mode string (typically 100644 or 100755) and then did $git_perms .= "r" if ( $mode & 4 ); $git_perms .= "w" if ( $mode & 2 ); $git_perms .= "x" if ( $mode & 1 ); which was already wrong, as (100644 & 4) is very different from oct("100644") & 4. An earlier refactoring 2c3af7e7 (cvsserver: factor out git-log parsing logic, 2012-10-13) further changed it to pick the third octal digit (10*0*644 or 10*0*755) from the left and then do the above conversion, which does not make sense, either. Let's use the third digit from the last of the octal mode string to make sure we get the executable and read bits right. Signed-off-by: Junio C Hamano <gitster@pobox.com> Tested-by: Michael Cronenworth <mike@cchtml.com>
2013-09-10send-email: don't call methods on undefined valuesLibravatar Brian M. Carlson1-1/+1
If SSL verification is enabled in git send-email, we could attempt to call a method on an undefined value if the verification failed, since $smtp would end up being undef. Look up the error string in a way that will produce a helpful error message and not cause further errors. Signed-off-by: Brian M. Carlson <sandals@crustytoothpaste.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-09-09upload-pack: bump keepalive default to 5 secondsLibravatar Jeff King2-2/+2
There is no reason not to turn on keepalives by default. They take very little bandwidth, and significantly less than the progress reporting they are replacing. And in the case that progress reporting is on, we should never need to send a keepalive anyway, as we will constantly be showing progress and resetting the keepalive timer. We do not necessarily know what the client's idea of a reasonable timeout is, so let's keep this on the low side of 5 seconds. That is high enough that we will always prefer our normal 1-second progress reports to sending a keepalive packet, but low enough that no sane client should consider the connection hung. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-09-09upload-pack: send keepalive packets during pack computationLibravatar Jeff King2-1/+35
When upload-pack has started pack-objects, there may be a quiet period while pack-objects prepares the pack (i.e., counting objects and delta compression). Normally we would see (and send to the client) progress information, but if "--quiet" is in effect, pack-objects will produce nothing at all until the pack data is ready. On a large repository, this can take tens of seconds (or even minutes if the system is loaded or the repository is badly packed). Clients or intermediate proxies can sometimes give up in this situation, assuming that the server or connection has hung. This patch introduces a "keepalive" option; if upload-pack sees no data from pack-objects for a certain number of seconds, it will send an empty sideband data packet to let the other side know that we are still working on it. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-09-09rebase: fix run_specific_rebase's use of "return" on FreeBSDLibravatar Matthieu Moy1-1/+10
Since a1549e10, git-rebase--am.sh uses the shell's "return" statement, to mean "return from the current file inclusion", which is POSIXly correct, but badly interpreted on FreeBSD, which returns from the current function, hence skips the finish_rebase statement that follows the file inclusion. Make the use of "return" portable by using the file inclusion as the last statement of a function. Reported-by: Christoph Mallon <christoph.mallon@gmx.de> Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-09-08l10n: de.po: use "das Tag" instead of "der Tag"Libravatar Ralf Thielow1-11/+11
Use "das Tag" to avoid confusion with the German word "Tag" (day). Reported-by: Dirk Heinrichs <dirk.heinrichs@altum.de> Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
2013-09-05Merge branch 'nd/fetch-pack-shallow-fix' into maintLibravatar Junio C Hamano2-1/+19
The recent "short-cut clone connectivity check" topic broke a shallow repository when a fetch operation tries to auto-follow tags. * nd/fetch-pack-shallow-fix: fetch-pack: do not remove .git/shallow file when --depth is not specified
2013-09-05Merge branch 'hv/config-from-blob' into maintLibravatar Junio C Hamano1-16/+16
Compilation fix on platforms with fgetc() and friends defined as macros. * hv/config-from-blob: config: do not use C function names as struct members
2013-09-05Merge branch 'maint-1.8.3' into maintLibravatar Junio C Hamano1-2/+2
* maint-1.8.3: Documentation/git-merge.txt: fix formatting of example block
2013-09-05Merge branch 'maint-1.8.2' into maint-1.8.3Libravatar Junio C Hamano1-2/+2
* maint-1.8.2: Documentation/git-merge.txt: fix formatting of example block
2013-09-05Documentation/git-merge.txt: fix formatting of example blockLibravatar Andreas Schwab1-2/+2
You need at least four dashes in a line to have it recognized as listing block delimiter by asciidoc. Signed-off-by: Andreas Schwab <schwab@linux-m68k.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-09-04add--interactive: fix external command invocation on WindowsLibravatar Johannes Sixt1-1/+1
Back in 21e9757e (Hack git-add--interactive to make it work with ActiveState Perl, 2007-08-01), the invocation of external commands was changed to use qx{} on Windows. The rationale was that the command interpreter on Windows is not a POSIX shell, but rather Windows's CMD. That patch was wrong to include 'msys' in the check whether to use qx{} or not: 'msys' identifies MSYS perl as shipped with Git for Windows, which does not need the special treatment; qx{} should be used only with ActiveState perl, which is identified by 'MSWin32'. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-09-03Merge git://github.com/git-l10n/git-po into maintLibravatar Junio C Hamano2-718/+874
* git://github.com/git-l10n/git-po: l10n: fr.po: hotfix for commit 6b388fc
2013-09-03Merge branch 'maint-1.8.3' into maintLibravatar Junio C Hamano1-0/+1
* maint-1.8.3: fix shell syntax error in template
2013-09-03Merge branch 'maint-1.8.2' into maint-1.8.3Libravatar Junio C Hamano1-0/+1
* maint-1.8.2: fix shell syntax error in template
2013-09-03Make setup_git_env() resolve .git file when $GIT_DIR is not specifiedLibravatar Nguyễn Thái Ngọc Duy2-5/+8
This makes reinitializing on a .git file repository work. This is probably the only case that setup_git_env() (via set_git_dir()) is called on a .git file. Other cases in setup_git_dir_gently() and enter_repo() both cover .git file case explicitly because they need to verify the target repo is valid. Reported-by: Ximin Luo <infinity0@gmx.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-08-30has_sha1_file: re-check pack directory before giving upLibravatar Jeff King1-1/+4
When we read a sha1 file, we first look for a packed version, then a loose version, and then re-check the pack directory again before concluding that we cannot find it. This lets us handle a process that is writing to the repository simultaneously (e.g., receive-pack writing a new pack followed by a ref update, or git-repack packing existing loose objects into a new pack). However, we do not do the same trick with has_sha1_file; we only check the packed objects once, followed by loose objects. This means that we might incorrectly report that we do not have an object, even though we could find it if we simply re-checked the pack directory. By itself, this is usually not a big deal. The other process is running simultaneously, so we may run has_sha1_file before it writes, anyway. It is a race whether we see the object or not. However, we may also see other things the writing process has done (like updating refs); and in that case, we must be able to also see the new objects. For example, imagine we are doing a for_each_ref iteration, and somebody simultaneously pushes. Receive-pack may write the pack and update a ref after we have examined the objects/pack directory, but before the iteration gets to the updated ref. When we do finally see the updated ref, for_each_ref will call has_sha1_file to check whether the ref is broken. If has_sha1_file returns the wrong answer, we erroneously will think that the ref is broken. For a normal iteration without DO_FOR_EACH_INCLUDE_BROKEN, this means that the caller does not see the ref at all (neither the old nor the new value). So not only will we fail to see the new value of the ref (which is acceptable, since we are running simultaneously with the writer, and we might well read the ref before the writer commits its write), but we will not see the old value either. For programs that act on reachability like pack-objects or prune, this can cause data loss, as we may see the objects referenced by the original ref value as dangling (and either omit them from the pack, or delete them via prune). There's no test included here, because the success case is two processes running simultaneously forever. But you can replicate the issue with: # base.sh # run this in one terminal; it creates and pushes # repeatedly to a repository git init parent && (cd parent && # create a base commit that will trigger us looking at # the objects/pack directory before we hit the updated ref echo content >file && git add file && git commit -m base && # set the unpack limit abnormally low, which # lets us simulate full-size pushes using tiny ones git config receive.unpackLimit 1 ) && git clone parent child && cd child && n=0 && while true; do echo $n >file && git add file && git commit -m $n && git push origin HEAD:refs/remotes/child/master && n=$(($n + 1)) done # fsck.sh # now run this simultaneously in another terminal; it # repeatedly fscks, looking for us to consider the # newly-pushed ref broken. We cannot use for-each-ref # here, as it uses DO_FOR_EACH_INCLUDE_BROKEN, which # skips the has_sha1_file check (and if it wants # more information on the object, it will actually read # the object, which does the proper two-step lookup) cd parent && while true; do broken=`git fsck 2>&1 | grep remotes/child` if test -n "$broken"; then echo $broken exit 1 fi done Without this patch, the fsck loop fails within a few seconds (and almost instantly if the test repository actually has a large number of refs). With it, the two can run indefinitely. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-08-30fix shell syntax error in templateLibravatar Thorsten Glaser1-0/+1
An if clause must not be empty; add a "colon" command. Signed-off-by: Thorsten Glaser <t.glaser@tarent.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>