e276f01 | Junio C Hamano | 29 July 2009, 06:52:58 UTC | GIT 1.6.3.4 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 29 July 2009, 06:59:30 UTC |
5c6d8bb | Stephen Boyd | 31 May 2009, 05:08:02 UTC | config.txt: document add.ignore-errors Use the description of "--ignore-errors" from git-add.txt as inspiration. Signed-off-by: Stephen Boyd <bebarino@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 29 July 2009, 06:56:01 UTC |
33016c4 | Tom Grennan | 29 July 2009, 01:30:02 UTC | request-pull: allow ls-remote to notice remote.$nickname.uploadpack The location to pull from should be converted from the configured nickname to URL in the message, but ls-remote should be fed the nickname so that the command uses remote.$nickname.* variables, most notably "uploadpack". Signed-off-by: Tom Grennan <tgrennan@redback.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 29 July 2009, 06:31:38 UTC |
54bc13c | Junio C Hamano | 19 June 2009, 02:18:37 UTC | t8005: Nobody writes Russian in shift_jis The second and third tests of this script expected that Russian strings are converted between ISO-8859-5 and Shift_JIS in the "blame --porcelain" format output correctly. Sure, many platforms may convert between such a combination, but that is only because one of the base character set of Shift_JIS, JIS X 0208, defines codepoints for Russian characters (among others); I do not think anybody uses Shift_JIS when seriously writing Russian, and it is perfectly understandable if iconv() libraries on some platforms fail converting between this combination, as it does not matter in reality. This patch changes the test to verify Japanese strings are converted correctly between EUC-JP and Shift_JIS in the same procedure. The point of the test is not about verifying the platform's iconv() library, but to see if "git blame" makes correct iconv() library calls when it should. We could instead use ISO-8859-5 and KOI8-R as the combination, because they are both meant to represent Russian, in order to make this test meaningful on more platforms, but we already use Shift_JIS vs EUC-JP combinations to test other programs in our test suite, so this combination is safer from the point of view of the portability. Besides, I do not read nor write Russian; sorry ;-) This change allows tests to pass on my (friend's) Solaris 5.11 box. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 July 2009, 09:14:56 UTC |
422a82f | Junio C Hamano | 25 July 2009, 08:29:20 UTC | Fix severe breakage in "git-apply --whitespace=fix" 735c674 (Trailing whitespace and no newline fix, 2009-07-22) completely broke --whitespace=fix, causing it to lose all the empty lines in a patch. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 July 2009, 08:29:20 UTC |
01ae841 | Junio C Hamano | 24 July 2009, 05:30:07 UTC | SunOS grep does not understand -C<n> nor -e The first "grep -C1" test in t7002 does not pass on my SunOS-5.11-i86pc, and that is not because our way to spawn external grep is broken, but because the native grep does not understand -C<n>. It turns out that Peff was also using this option himself because our Makefile doesn't do that automatically. Brandon Casey uses SUNWspro compiler without having to set this, and it turns out that the compiler does not define preprocessor macro __unix__ which made him always use the built-in grep, never an external one. Let's be more explicit and say that we do not use external grep on Suns. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 July 2009, 16:20:34 UTC |
96d69b5 | Matthias Andree | 24 July 2009, 08:17:13 UTC | Fix export_marks() error handling. - Don't leak one FILE * on error per export_marks() call. Found with cppcheck and reported by Martin Ettl. - Abort the potentially long for(;idnums.size;) loop on write errors. - Record error if fprintf() fails for reasons not required to set the stream error indicator, such as ENOMEM. - Add a trailing full-stop to error message when fopen() fails. Signed-off-by: Matthias Andree <matthias.andree@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 July 2009, 16:12:26 UTC |
7e9ff00 | Linus Torvalds | 23 July 2009, 19:13:48 UTC | git branch: clean up detached branch handling Make the 'show detached branch info' a routine of its own. And in the process, avoid the object lookup that is unnecessary if the current branch isn't detached. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 July 2009, 04:56:07 UTC |
191d1ac | Linus Torvalds | 23 July 2009, 19:05:34 UTC | git branch: avoid unnecessary object lookups They can be expensive in the cold-cache case, so don't bother looking up the commits for all branches unless we really need them for some reason. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 July 2009, 04:56:04 UTC |
e6e4a47 | Linus Torvalds | 23 July 2009, 17:17:04 UTC | git branch: fix performance problem 'git branch' looks at _all_ the refs, and verifies them. Which means that during cold-cache situations with a slow disk (and lots of tags, for example) it can take several very annoying seconds (7.5s according to a report by Carlos R. Mafra). This avoids most of it by simply doing the filtering before looking up the commits, by using the "raw" version of for_each_ref. Reported-by: Carlos R. Mafra <crmafra2@gmail.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 July 2009, 04:56:00 UTC |
eafb452 | Junio C Hamano | 23 July 2009, 06:07:05 UTC | do_one_ref(): null_sha1 check is not about broken ref f8948e2 (remote prune: warn dangling symrefs, 2009-02-08) introduced a more dangerous variant of for_each_ref() family that skips the check for dangling refs, but it also made another unrelated check optional by mistake. The check to see if a ref points at 0{40} is not about brokenness, but is about a possible future plan to represent a deleted ref by writing 40 "0" in a loose ref when there is a stale version of the same ref already in .git/packed-refs, so that we can implement deletion of a ref without having to rewrite the packed refs file excluding the ref being deleted. This check has to live outside of the conditional. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 23 July 2009, 06:07:05 UTC |
735c674 | SZEDER Gábor | 23 July 2009, 00:24:38 UTC | Trailing whitespace and no newline fix If a patch adds a new line to the end of a file and this line ends with one trailing whitespace character and has no newline, then '--whitespace=fix' currently does not remove that trailing whitespace. This patch fixes this by removing the check for trailing whitespace at the end of the line at a hardcoded offset which does not take the eventual absence of newline into account. Signed-off-by: SZEDER Gábor <szeder@ira.uka.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 23 July 2009, 01:54:55 UTC |
b810cbb | Junio C Hamano | 22 July 2009, 21:48:29 UTC | diff --cc: a lost line at the beginning of the file is shown incorrectly When combine-diff inspected the diff from one parent to the merge result, it misinterpreted a header in the form @@ -l,k +0,0 @@. This hunk header means that K lines were removed from the beginning of the file, so the lost lines must be queued to the sline that represents the first line of the merge result, but we incremented our pointer incorrectly and ended up queuing it to the second line, which in turn made the lossage appear _after_ the first line. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 July 2009, 22:38:22 UTC |
55d5d5b | Junio C Hamano | 22 July 2009, 21:48:28 UTC | combine-diff.c: fix performance problem when folding common deleted lines For a deleted line in a patch with the parent we are looking at, the append_lost() function finds the same line among a run of lines that were deleted from the same location by patches from parents we previously checked. This is so that patches with two parents @@ -1,4 +1,3 @@ @@ -1,4 +1,3 @@ one one -two -two three three -quatro -fyra +four +four can be coalesced into this sequence, reusing one line that describes the removal of "two" for both parents. @@@ -1,4 -1,4 +1,3 @@@ one --two three - quatro -frya ++four While reading the second patch (that removes "two" and then "fyra"), after finding where removal of the "two" matches, we need to find existing removal of "fyra" (if exists) in the removal list, but the match has to happen after all the existing matches (in this case "two"). The code used a naïve O(n^2) algorithm to compute this by scanning the whole removal list over and over again. This patch remembers where the next scan should be started in the existing removal list to avoid this. Noticed by Linus Torvalds. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 July 2009, 22:37:55 UTC |
78d3b06 | Junio C Hamano | 18 July 2009, 19:26:38 UTC | checkout -f: deal with a D/F conflict entry correctly When we switch branches with "checkout -f", unpack_trees() feeds two cache_entries to oneway_merge() function in its src[] array argument. The zeroth entry comes from the current index, and the first entry represents what the merge result should be, taken from the tree recorded in the commit we are switching to. When we have a blob (either regular file or a symlink) in the index and in the work tree at path "foo", and the switched-to tree has "foo/bar", i.e. "foo" becomes a directory, src[0] is obviously that blob currently registered at "foo". Even though we do not have anything at "foo" in the switched-to tree, src[1] is _not_ NULL in this case. The unpack_trees() machinery places a special marker df_conflict_entry to signal that no blob exists at "foo", but it will become a directory that may have somthing underneath it (namely "foo/bar"), so a usual 3-way merge can notice the situation. But oneway_merge() codepath failed to notice this and passed the special marker directly to merged_entry(). This happens to remove the "foo" in the end because the df_conflict_entry does not have any name (hence the "error" message) and its addition in add_index_entry() is rejected, but it is wrong. Signed-off-by: Junio C Hamano <gitster@pobox.com> Acked-by: Linus Torvalds <torvalds@linux-foundation.org> | 18 July 2009, 23:57:30 UTC |
b45a09c | Brandon Casey | 16 July 2009, 21:25:19 UTC | sha1_name.c: avoid unnecessary strbuf_release When we fall back to a standard for_each_reflog_ent() after failing to find the nth branch switch (or if we had a short reflog) with the call to for_each_recent_reflog_ent(), we do not need to free the memory allocated for our strbuf's since a strbuf_reset() will be performed in grab_nth_branch_switch() before assigning to the entry. Plus, the strbuf_release() negates the non-zero hint we initially gave to strbuf_init() just above these lines. Signed-off-by: Brandon Casey <drafnel@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 16 July 2009, 22:09:21 UTC |
9d33f7c | Brandon Casey | 16 July 2009, 21:25:18 UTC | refs.c: release file descriptor on error return Signed-off-by: Brandon Casey <drafnel@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 16 July 2009, 22:07:24 UTC |
49902bd | Junio C Hamano | 08 July 2009, 16:52:25 UTC | Merge branch 'cb/maint-fetch-refspec-wo-dst' into maint * cb/maint-fetch-refspec-wo-dst: fetch: do not create ref from empty name | 08 July 2009, 16:52:25 UTC |
b13493b | Junio C Hamano | 08 July 2009, 16:52:14 UTC | Merge branch 'cf/maint-remote-uploadpack-useconfig-fix' into maint * cf/maint-remote-uploadpack-useconfig-fix: git-remote: fix missing .uploadpack usage for show command | 08 July 2009, 16:52:14 UTC |
595b8db | Sitaram Chamarty | 01 July 2009, 16:00:31 UTC | Documentation: update description of shell aliases Aliases that invoke shell commands start from the top-level directory, but this was not documented. Signed-off-by: Sitaram Chamarty <sitaramc@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 08 July 2009, 16:45:28 UTC |
653a31c | Michal Marek | 01 July 2009, 09:40:30 UTC | request-pull: really really disable pager Earlier 476cc72 (request-pull: really disable pager, 2009-06-30) tried to use the correct environment variable to disable paging from multiple calls to "git log" and friends, but there was one extra call to "git log" that was not covered by the trick. Move the setting and exporting of GIT_PAGER much earlier in the script to cover everybody. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 01 July 2009, 20:20:00 UTC |
d4c9856 | René Scharfe | 30 June 2009, 22:30:00 UTC | attr: plug minor memory leak Free the memory allocated for struct strbuf pathbuf when we're done. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 30 June 2009, 23:12:24 UTC |
476cc72 | Junio C Hamano | 30 June 2009, 18:29:36 UTC | request-pull: really disable pager ff06c74 (Improve request-pull to handle non-rebased branches, 2007-05-01) attempted to disable pager when running subcommands in this script, but with a wrong variable. If GIT_PAGER is set, it takes precedence over PAGER. Noticed by Michal Marek. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 30 June 2009, 18:33:30 UTC |
21d777f | Thadeu Lima de Souza Cascardo | 29 June 2009, 15:13:58 UTC | Makes some cleanup/review in gittutorial There are some different but little cleanup changes to fix some missing quotes, to fix what seemed to be an unended sentence, to reident a little paragraph with too large a sentence and fix a branch name that was referred to twice later by another name. Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 30 June 2009, 18:17:55 UTC |
fe10498 | Johannes Sixt | 29 June 2009, 19:42:08 UTC | Makefile: git.o depends on library headers This dependency was not yet specified anywhere else. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 30 June 2009, 18:17:54 UTC |
1c3acfc | Miklos Vajna | 28 June 2009, 12:55:45 UTC | git-submodule documentation: fix foreach example Backtick and apostrophe are asciidoc markup, so they should be escaped in order to get the expected result in the rendered manual page. Signed-off-by: Miklos Vajna <vmiklos@frugalware.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 30 June 2009, 18:17:54 UTC |
1bed73c | Giuseppe Bilotta | 27 June 2009, 16:24:11 UTC | gitweb/README: fix AliasMatch in example When combining "dumb client" and human-friendly access by using the '.git' extension to switch between the two, make sure the AliasMatch covers the entire request. Without a full match, a request for http://git.example.com/project/shortlog/branch..gitsomething would result in a 404 because the server would try to access the the project 'project/shortlog/branch.' The solution is still not bulletproof, so document the possible failing case. Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 June 2009, 20:15:57 UTC |
0f70504 | Thomas Rast | 27 June 2009, 18:47:44 UTC | Test grep --and/--or/--not Signed-off-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 June 2009, 20:15:41 UTC |
4813926 | Thomas Rast | 27 June 2009, 18:47:43 UTC | Test git archive --remote Add a small test case for git archive --remote (and thus git-upload-archive), which so far went untested. Signed-off-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 June 2009, 20:15:39 UTC |
345a380 | Chris Frey | 25 June 2009, 21:21:35 UTC | git-remote: fix missing .uploadpack usage for show command For users pulling from machines with self compiled git installs, in non-PATH locations, they can set the config option remote.<name>.uploadpack to set the location of git-upload-pack. When using 'git remote show <name>', the remote HEAD check did not use the uploadpack configuration setting, and would not use the configured program. In builtin-remote.c, the config setting is already loaded with the call to remote_get(), so this patch passes that remote along to transport_get(). Signed-off-by: Chris Frey <cdfrey@foursquare.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 June 2009, 21:47:49 UTC |
6651c3f | Roel Kluin | 22 June 2009, 16:42:33 UTC | fread does not return negative on error size_t res cannot be less than 0. fread returns 0 on error. Reported-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Roel Kluin <roel.kluin@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 23 June 2009, 23:57:15 UTC |
1ab012c | Johannes Sixt | 22 June 2009, 07:30:38 UTC | t3700-add: add a POSIXPERM prerequisite to a new test The new test does a 'chmod 0', which does not have the intended effect on Windows. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 June 2009, 07:44:14 UTC |
d1f6c18 | Junio C Hamano | 22 June 2009, 07:44:09 UTC | Merge branch 'sb/maint-1.6.0-add-config-fix' into maint * sb/maint-1.6.0-add-config-fix: add: allow configurations to be overriden by command line | 22 June 2009, 07:44:09 UTC |
cff4231 | Junio C Hamano | 22 June 2009, 04:02:49 UTC | GIT 1.6.3.3 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 June 2009, 04:15:50 UTC |
a69f8c9 | Junio C Hamano | 22 June 2009, 04:15:39 UTC | Merge branch 'ak/maint-for-each-ref-no-lookup' into maint * ak/maint-for-each-ref-no-lookup: for-each-ref: Do not lookup objects when they will not be used | 22 June 2009, 04:15:39 UTC |
be273c7 | Junio C Hamano | 22 June 2009, 04:15:31 UTC | Merge branch 'rc/maint-http-local-slot-fix' into maint * rc/maint-http-local-slot-fix: http*: cleanup slot->local after fclose | 22 June 2009, 04:15:31 UTC |
d836118 | Junio C Hamano | 22 June 2009, 04:15:27 UTC | Merge branch 'cb/maint-no-double-merge' into maint * cb/maint-no-double-merge: refuse to merge during a merge | 22 June 2009, 04:15:27 UTC |
6019b3c | Junio C Hamano | 22 June 2009, 04:14:25 UTC | Merge branch 'mn/maint-iconv-autoconf' into maint * mn/maint-iconv-autoconf: fix handling of iconv configuration options | 22 June 2009, 04:14:25 UTC |
44fb185 | Junio C Hamano | 22 June 2009, 04:14:09 UTC | Merge branch 'lt/maint-unsigned-left-shift' into maint * lt/maint-unsigned-left-shift: Fix big left-shifts of unsigned char | 22 June 2009, 04:14:09 UTC |
037e9d5 | Junio C Hamano | 22 June 2009, 04:08:05 UTC | Merge branch 'pb/maint-1.6.2-userdiff-fix' into maint * pb/maint-1.6.2-userdiff-fix: upload-archive: fix infinite loop on Cygwin avoid exponential regex match for java and objc function names | 22 June 2009, 04:08:05 UTC |
a437900 | Junio C Hamano | 21 June 2009, 09:35:18 UTC | attribute: whitespace set to true detects all errors known to git That is what the documentation says, but the code pretends as if all the known whitespace error tokens were given. Among the whitespace error tokens, there is one kind that loosens the rule when set: cr-at-eol. Which means that whitespace error token that is set to true ignores a newly introduced CR at the end, which is inconsistent with the documentation. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 21 June 2009, 17:43:10 UTC |
e2f6331 | Nanako Shiraishi | 19 June 2009, 10:42:53 UTC | .gitattributes: CR at the end of the line is an error When a CR is accidentally added at the end of a C source file in the git project tree, "git diff --check" doesn't detect it as an error. $ echo abQ | tr Q '\015' >>fast-import.c $ git diff --check I think this is because the "whitespace" attribute is set to *.[ch] files without specifying what kind of errors are caught. It makes git "notice all types of errors" (as described in the documentation), but I think it is incorrectly setting cr-at-eol, too, and hides this error. Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 21 June 2009, 17:42:37 UTC |
c6720cf | Junio C Hamano | 21 June 2009, 09:01:28 UTC | t3505: fix abuse of test_expect_code The test wanted to make sure that cherry-pick exits with status 1, but with the way it was placed after "git checkout master &&" meant that it could have misjudged success if checkout barfed with the same failure status. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 21 June 2009, 09:01:28 UTC |
3ba4f3a | Junio C Hamano | 21 June 2009, 06:48:46 UTC | Merge branch 'maint-1.6.2' into maint * maint-1.6.2: git-show-ref.txt: remove word and make consistent git-svn documentation: fix typo in 'rebase vs. pull/merge' section use xstrdup, not strdup in ll-merge.c | 21 June 2009, 06:48:46 UTC |
cd12f53 | Junio C Hamano | 21 June 2009, 06:48:28 UTC | Merge branch 'maint-1.6.1' into maint-1.6.2 * maint-1.6.1: git-show-ref.txt: remove word and make consistent git-svn documentation: fix typo in 'rebase vs. pull/merge' section use xstrdup, not strdup in ll-merge.c | 21 June 2009, 06:48:28 UTC |
4258c21 | Junio C Hamano | 21 June 2009, 06:48:21 UTC | Merge branch 'maint-1.6.0' into maint-1.6.1 * maint-1.6.0: git-show-ref.txt: remove word and make consistent git-svn documentation: fix typo in 'rebase vs. pull/merge' section use xstrdup, not strdup in ll-merge.c | 21 June 2009, 06:48:21 UTC |
d4900ee | Stephen Boyd | 21 June 2009, 04:40:45 UTC | git-show-ref.txt: remove word and make consistent Under is better than in because of the nested nature of the .git directory. "also using" sounds a little odd, plus we say combined with later on so just use that. Signed-off-by: Stephen Boyd <bebarino@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 21 June 2009, 06:45:51 UTC |
ccf497d | Miklos Vajna | 20 June 2009, 11:27:15 UTC | git-svn documentation: fix typo in 'rebase vs. pull/merge' section Signed-off-by: Miklos Vajna <vmiklos@frugalware.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 21 June 2009, 04:20:51 UTC |
ed342fd | Stephen Boyd | 18 June 2009, 09:17:54 UTC | add: allow configurations to be overriden by command line Don't call git_config after parsing the command line options, otherwise the config settings will override any settings made by the command line. This can be seen by setting add.ignore_errors and then specifying --no-ignore-errors when using git-add. Signed-off-by: Stephen Boyd <bebarino@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 18 June 2009, 19:20:36 UTC |
ef52aaf | Mark Lodato | 15 June 2009, 02:39:00 UTC | http.c: fix compiling with libcurl 7.9.2 Change the minimimum required libcurl version for the http.sslKey option to 7.9.3. Previously, preprocessor macros checked for >= 7.9.2, which is incorrect because CURLOPT_SSLKEY was introduced in 7.9.3. This now allows git to compile with libcurl 7.9.2. Signed-off-by: Mark Lodato <lodatom@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 18 June 2009, 17:10:30 UTC |
3eb9699 | Clemens Buchacher | 17 June 2009, 13:38:36 UTC | fetch: do not create ref from empty name Previously, the refspec "<src>:" would be expanded to "<src>:refs/heads/". Instead, treat an empty <dst> just like refspecs without a colon. Signed-off-by: Clemens Buchacher <drizzd@aon.at> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 18 June 2009, 16:55:34 UTC |
6fb37f8 | Johannes Schindelin | 17 June 2009, 12:49:39 UTC | import-tars: support symlinks Without this patch, symbolic links are turned into empty files. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 18 June 2009, 16:53:53 UTC |
1b19fa4 | René Scharfe | 17 June 2009, 10:11:10 UTC | upload-archive: fix infinite loop on Cygwin On Cygwin, poll() reports POLLIN even for file descriptors that have reached their end. This caused git upload-archive to be stuck in an infinite loop, as it only looked at the POLLIN flag. In addition to POLLIN, check if read() returned 0, which indicates end-of-file, and keep looping only as long as at least one of the file descriptors has input. This lets the following command finish on its own when run in a git repository on Cygwin, instead of it getting stuck after printing all file names: $ git archive -v --remote . HEAD >/dev/null Reported-by: Bob Kagy <bobkagy@gmail.com> Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 18 June 2009, 16:52:28 UTC |
959e2e6 | Paolo Bonzini | 17 June 2009, 14:26:06 UTC | avoid exponential regex match for java and objc function names In the old regex ^[ \t]*(([ \t]*[A-Za-z_][A-Za-z_0-9]*){2,}[ \t]*\([^;]*)$ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ you can backtrack arbitrarily from [A-Za-z_0-9]* into [A-Za-z_], thus causing an exponential number of backtracks. Ironically it also causes the regex not to work as intended; for example "catch" can match the underlined part of the regex, the first repetition matching "c" and the second matching "atch". The replacement regex avoids this problem, because it makes sure that at least a space/tab is eaten on each repetition. In other words, a suffix of a repetition can never be a prefix of the next repetition. Signed-off-by: Paolo Bonzini <bonzini@gnu.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 18 June 2009, 16:52:10 UTC |
48fb7de | Linus Torvalds | 18 June 2009, 00:22:27 UTC | Fix big left-shifts of unsigned char Shifting 'unsigned char' or 'unsigned short' left can result in sign extension errors, since the C integer promotion rules means that the unsigned char/short will get implicitly promoted to a signed 'int' due to the shift (or due to other operations). This normally doesn't matter, but if you shift things up sufficiently, it will now set the sign bit in 'int', and a subsequent cast to a bigger type (eg 'long' or 'unsigned long') will now sign-extend the value despite the original expression being unsigned. One example of this would be something like unsigned long size; unsigned char c; size += c << 24; where despite all the variables being unsigned, 'c << 24' ends up being a signed entity, and will get sign-extended when then doing the addition in an 'unsigned long' type. Since git uses 'unsigned char' pointers extensively, we actually have this bug in a couple of places. I may have missed some, but this is the result of looking at git grep '[^0-9 ][ ]*<<[ ][a-z]' -- '*.c' '*.h' git grep '<<[ ]*24' which catches at least the common byte cases (shifting variables by a variable amount, and shifting by 24 bits). I also grepped for just 'unsigned char' variables in general, and converted the ones that most obviously ended up getting implicitly cast immediately anyway (eg hash_name(), encode_85()). In addition to just avoiding 'unsigned char', this patch also tries to use a common idiom for the delta header size thing. We had three different variations on it: "& 0x7fUL" in one place (getting the sign extension right), and "& ~0x80" and "& 0x7f" in two other places (not getting it right). Apart from making them all just avoid using "unsigned char" at all, I also unified them to then use a simple "& 0x7f". I considered making a sparse extension which warns about doing implicit casts from unsigned types to signed types, but it gets rather complex very quickly, so this is just a hack. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 18 June 2009, 16:22:46 UTC |
bc2bbc4 | Stephen Boyd | 14 June 2009, 23:08:56 UTC | pull, rebase: simplify to use die() Signed-off-by: Stephen Boyd <bebarino@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 15 June 2009, 04:14:10 UTC |
90dce51 | Jim Meyering | 14 June 2009, 19:47:54 UTC | use xstrdup, not strdup in ll-merge.c Otherwise, a fluky allocation failure would cause merge configuration settings to be silently ignored. Signed-off-by: Jim Meyering <meyering@redhat.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 14 June 2009, 20:37:14 UTC |
50a991e | Junio C Hamano | 14 June 2009, 00:10:08 UTC | Merge branch 'maint-1.6.2' into maint * maint-1.6.2: git-rerere.txt: grammatical fixups and cleanups | 14 June 2009, 00:10:08 UTC |
9b7dc71 | Junio C Hamano | 14 June 2009, 00:09:50 UTC | Merge branch 'maint-1.6.1' into maint-1.6.2 * maint-1.6.1: git-rerere.txt: grammatical fixups and cleanups | 14 June 2009, 00:09:50 UTC |
dfe5051 | Junio C Hamano | 14 June 2009, 00:09:45 UTC | Merge branch 'maint-1.6.0' into maint-1.6.1 * maint-1.6.0: git-rerere.txt: grammatical fixups and cleanups http-push.c::remove_locks(): fix use after free | 14 June 2009, 00:09:45 UTC |
c97038d | Stephen Boyd | 13 June 2009, 18:20:00 UTC | git-rerere.txt: grammatical fixups and cleanups Rewrite the gc section using unresolved and resolved instead of "not recorded". Add plurals and missing articles. Make some sentences have consistent tense. Try and be more active by removing "that" and simplifying sentences. The terms "hand-resolve" and "hand resolve" were used, so just use "hand resolve" to be more consistent. Signed-off-by: Stephen Boyd <bebarino@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 13 June 2009, 19:44:41 UTC |
94af7c3 | Paolo Bonzini | 11 June 2009, 07:30:27 UTC | Documentation: git-send-mail can take rev-list arg to drive format-patch The git-send-email docs do not mention except in the usage lines the combined patch formatting/sending ability of git-send-email. This patch expands on the possible arguments to git-send-email and explains the meaning of the rev-list argument. Signed-off-by: Paolo Bonzini <bonzini@gnu.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 12 June 2009, 06:35:05 UTC |
a0c0447 | Junio C Hamano | 11 June 2009, 21:14:00 UTC | Merge branch 'uk/maint-1.5.3-rebase-i-reflog' into maint * uk/maint-1.5.3-rebase-i-reflog: rebase--interactive: remote stray closing parenthesis Conflicts: git-rebase--interactive.sh | 11 June 2009, 21:14:00 UTC |
795cbe9 | Uwe Kleine-König | 11 June 2009, 20:27:55 UTC | rebase--interactive: remote stray closing parenthesis it was introduced in 68a163c9b483ae352fcfee8c4505d113213daa73 Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Cc: Jöhännës "Dschö" Schindëlin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 11 June 2009, 21:01:15 UTC |
802f9c9 | Johannes Sixt | 08 June 2009, 20:34:30 UTC | diff.c: plug a memory leak in an error path Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 09 June 2009, 04:19:26 UTC |
3ef67cf | Johannes Sixt | 08 June 2009, 08:51:22 UTC | fetch-pack: close output channel after sideband demultiplexer terminates fetch-pack runs the sideband demultiplexer using start_async(). This facility requires that the asynchronously executed function closes the output file descriptor (see Documentation/technical/api-run-command.txt). But the sideband demultiplexer did not do that. This fixes it. In certain error situations this could lock up a fetch operation on Windows because the asynchronous function is run in a thread; by not closing the output fd the reading end never got EOF and waited for more data indefinitely. On Unix this is not a problem because the asynchronous function is run in a separate process, which exits after the function ends and so implicitly closes the output. Since the pack that is sent over the wire encodes the number of objects in the stream, during normal operation the reading end knows when the stream ends and terminates by itself, and does not lock up. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 09 June 2009, 04:18:41 UTC |
934f82a | Marco Nelissen | 09 June 2009, 03:46:38 UTC | fix handling of iconv configuration options Fix the way in which the configure script handles --without-iconv (and --with-iconv=no), which it used to essentially ignore. Also fix the way the configure script determines the value of NEEDS_LIBICONV, which would be incorrectly set to 'YesPlease' on systems that lack iconv entirely. Signed-off-by: Marco Nelissen <marcone@xs4all.nl> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 09 June 2009, 04:18:02 UTC |
956d27a | Michael J Gruber | 06 June 2009, 15:16:30 UTC | builtin-remote: Make "remote show" display all urls Currently, "git remote -v" lists all urls whereas "git remote show $remote" shows only the first. Make it so that both show all. Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 08 June 2009, 22:01:12 UTC |
801a011 | Thomas Rast | 06 June 2009, 13:11:07 UTC | Documentation: refer to gitworkflows(7) from tutorial and git(1) Add references to the gitworkflows(7) manpage added in f948dd8 (Documentation: add manpage about workflows, 2008-10-19) to both gittutorial(1) and git(1), so that new users might actually discover and read it. Noticed by Randal L. Schwartz. Signed-off-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 06 June 2009, 20:30:41 UTC |
73bb33a | Shawn O. Pearce | 05 June 2009, 01:33:32 UTC | daemon: Strictly parse the "extra arg" part of the command Since 1.4.4.5 (49ba83fb67 "Add virtualization support to git-daemon") git daemon enters an infinite loop and never terminates if a client hides any extra arguments in the initial request line which is not exactly "\0host=blah\0". Since that change, a client must never insert additional extra arguments, or attempt to use any argument other than "host=", as any daemon will get stuck parsing the request line and will never complete the request. Since the client can't tell if the daemon is patched or not, it is not possible to know if additional extra args might actually be able to be safely requested. If we ever need to extend the git daemon protocol to support a new feature, we may have to do something like this to the exchange: # If both support git:// v2 # C: 000cgit://v2 S: 0010ok host user C: 0018host git.kernel.org C: 0027git-upload-pack /pub/linux-2.6.git S: ...git-upload-pack header... # If client supports git:// v2, server does not: # C: 000cgit://v2 S: <EOF> C: 003bgit-upload-pack /pub/linux-2.6.git\0host=git.kernel.org\0 S: ...git-upload-pack header... This requires the client to create two TCP connections to talk to an older git daemon, however all daemons since the introduction of daemon.c will safely reject the unknown "git://v2" command request, so the client can quite easily determine the server supports an older protocol. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 06 June 2009, 20:27:52 UTC |
16493eb | Tay Ray Chuan | 06 June 2009, 08:43:26 UTC | http*: cleanup slot->local after fclose Set slot->local to NULL after doing a fclose() on the file it points to. This prevents the passing of a FILE* pointer to a fclose()'d file to ftell() in http.c::run_active_slot(). This issue was raised by Clemens Buchacher on 30th May 2009: http://www.spinics.net/lists/git/msg104623.html Signed-off-by: Tay Ray Chuan <rctay89@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 06 June 2009, 17:30:16 UTC |
6c7f58d | Junio C Hamano | 04 June 2009, 05:42:15 UTC | GIT 1.6.3.2 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 04 June 2009, 05:47:48 UTC |
84201ea | René Scharfe | 03 June 2009, 16:19:01 UTC | grep: fix empty word-regexp matches The command "git grep -w ''" dies as soon as it encounters an empty line, reporting (wrongly) that "regexp returned nonsense". The first hunk of this patch relaxes the sanity check that is responsible for that, allowing matches to start at the end. The second hunk complements it by making sure that empty matches are rejected if -w was specified, as they are not really words. GNU grep does the same: $ echo foo | grep -c '' 1 $ echo foo | grep -c -w '' 0 Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 03 June 2009, 18:32:29 UTC |
a9b2d42 | Junio C Hamano | 03 June 2009, 07:43:22 UTC | blame: correctly handle a path that used to be a directory When trying to see if the same path exists in the parent, we ran "diff-tree" with pathspec set to the path we are interested in with the parent, and expect either to have exactly one resulting filepair (either "changed from the parent", "created when there was none") or nothing (when there is no change from the parent). If the path used to be a directory, however, we will also see unbounded number of entries that talk about the files that used to exist underneath the directory in question. Correctly pick only the entry that describes the path we are interested in in such a case (namely, the creation of the path as a regular file). Noticed by Ben Willard. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 03 June 2009, 07:49:34 UTC |
8dc3a47 | Thomas Rast | 02 June 2009, 21:34:27 UTC | add -i: do not dump patch during application Remove a debugging print that snuck in at 7a26e65 (Revert "git-add--interactive: remove hunk coalescing", 2009-05-16). Signed-off-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 03 June 2009, 07:11:15 UTC |
40bad52 | Junio C Hamano | 02 June 2009, 14:57:39 UTC | Update draft release notes for 1.6.3.2 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 02 June 2009, 15:11:30 UTC |
456cb4c | Junio C Hamano | 02 June 2009, 14:48:44 UTC | Merge branch 'cb/maint-1.6.0-xdl-merge-fix' into maint * cb/maint-1.6.0-xdl-merge-fix: Change xdl_merge to generate output even for null merges t6023: merge-file fails to output anything for a degenerate merge Conflicts: xdiff/xmerge.c | 02 June 2009, 14:48:44 UTC |
3489428 | Junio C Hamano | 02 June 2009, 14:48:09 UTC | Merge branch 'rs/maint-grep-word-regexp-fix' into maint * rs/maint-grep-word-regexp-fix: grep: fix colouring of matches with zero length grep: fix word-regexp at the beginning of lines | 02 June 2009, 14:48:09 UTC |
b91ffd3 | Junio C Hamano | 02 June 2009, 14:47:03 UTC | Merge branch 'sb/maint-1.6.2-opt-filename-fix' into maint * sb/maint-1.6.2-opt-filename-fix: apply, fmt-merge-msg: use relative filenames commit: -F overrides -t | 02 June 2009, 14:47:03 UTC |
f282326 | Junio C Hamano | 02 June 2009, 14:46:52 UTC | Merge branch 'jc/maint-add-p-coalesce-fix' into maint * jc/maint-add-p-coalesce-fix: t3701: ensure correctly set up repository after skipped tests Revert "git-add--interactive: remove hunk coalescing" Splitting a hunk that adds a line at the top fails in "add -p" | 02 June 2009, 14:46:52 UTC |
db8af4b | Junio C Hamano | 02 June 2009, 14:43:45 UTC | Merge branch 'tr/maint-doc-stash-pop' into maint * tr/maint-doc-stash-pop: Documentation: teach stash/pop workflow instead of stash/apply | 02 June 2009, 14:43:45 UTC |
1f5b9cc | René Scharfe | 01 June 2009, 21:53:05 UTC | grep: fix colouring of matches with zero length If a zero-length match is encountered, break out of loop and show the rest of the line uncoloured. Otherwise we'd be looping forever, trying to make progress by advancing the pointer by zero characters. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 02 June 2009, 05:30:39 UTC |
c8c562a | Clemens Buchacher | 01 June 2009, 09:20:56 UTC | refuse to merge during a merge The following is an easy mistake to make for users coming from version control systems with an "update and commit"-style workflow. 1. git pull 2. resolve conflicts 3. git pull Step 3 overrides MERGE_HEAD, starting a new merge with dirty index. IOW, probably not what the user intended. Instead, refuse to merge again if a merge is in progress. Reported-by: Dave Olszewski <cxreg@pobox.com> Signed-off-by: Clemens Buchacher <drizzd@aon.at> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 02 June 2009, 02:42:17 UTC |
b7dd2d2 | Anders Kaseorg | 27 May 2009, 19:23:12 UTC | for-each-ref: Do not lookup objects when they will not be used This makes commands such as `git for-each-ref --format='%(refname)'`, which are used heavily by the bash_completion code, run about 6 times faster on an uncached repository (3 s intead of 18 s on my linux-2.6 repository with several remotes). Signed-off-by: Anders Kaseorg <andersk@mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 29 May 2009, 06:56:19 UTC |
7b8988e | Thomas Rast | 28 May 2009, 09:40:15 UTC | Documentation: teach stash/pop workflow instead of stash/apply Recent discussion on the list showed some comments in favour of a stash/pop workflow: http://marc.info/?l=git&m=124234911423358&w=2 http://marc.info/?l=git&m=124235348327711&w=2 Change the stash documentation and examples to document pop in its own right (and apply in terms of pop), and use stash/pop in the examples. Signed-off-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 29 May 2009, 06:52:25 UTC |
6a01554 | Clemens Buchacher | 27 May 2009, 20:13:43 UTC | fix segfault showing an empty remote In case of an empty list, the search for its tail caused a NULL-pointer dereference. Signed-off-by: Clemens Buchacher <drizzd@aon.at> Reported-by: Erik Faye-Lund <kusmabite@googlemail.com> Acked-by: Jay Soffian <jaysoffian@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 28 May 2009, 06:16:16 UTC |
e57cb01 | Junio C Hamano | 26 May 2009, 02:20:39 UTC | Prepare for 1.6.3.2 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 26 May 2009, 02:20:39 UTC |
2a1feb9 | Junio C Hamano | 26 May 2009, 02:04:29 UTC | Merge branch 'js/maint-no-ln-across-libexec-and-bin' into maint * js/maint-no-ln-across-libexec-and-bin: Add NO_CROSS_DIRECTORY_HARDLINKS support to the Makefile Conflicts: Makefile | 26 May 2009, 02:04:29 UTC |
5e04a1e | Junio C Hamano | 26 May 2009, 02:04:08 UTC | Merge branch 'lt/maint-diff-reduce-lstat' into maint * lt/maint-diff-reduce-lstat: Teach 'git checkout' to preload the index contents Avoid unnecessary 'lstat()' calls in 'get_stat_data()' | 26 May 2009, 02:04:08 UTC |
597a178 | Junio C Hamano | 26 May 2009, 02:03:52 UTC | Merge branch 'jm/format-patch-no-auto-n-when-k-is-given' into maint * jm/format-patch-no-auto-n-when-k-is-given: format-patch let -k override a config-specified format.numbered | 26 May 2009, 02:03:52 UTC |
5c44cc9 | Junio C Hamano | 26 May 2009, 02:03:43 UTC | Merge branch 'do/maint-merge-recursive-fix' into maint * do/maint-merge-recursive-fix: merge-recursive: never leave index unmerged while recursing | 26 May 2009, 02:03:43 UTC |
4176537 | Junio C Hamano | 26 May 2009, 02:03:20 UTC | Merge branch 'jk/maint-1.6.0-trace-argv' into maint * jk/maint-1.6.0-trace-argv: fix GIT_TRACE segfault with shell-quoted aliases Conflicts: alias.c | 26 May 2009, 02:03:20 UTC |
4619136 | Junio C Hamano | 26 May 2009, 02:02:11 UTC | Merge branch 'np/push-delta' into maint * np/push-delta: allow OFS_DELTA objects during a push | 26 May 2009, 02:02:11 UTC |
e82f625 | Junio C Hamano | 26 May 2009, 02:01:59 UTC | Merge branch 'ar/merge-one-file-diag' into maint * ar/merge-one-file-diag: Clarify kind of conflict in merge-one-file helper | 26 May 2009, 02:01:59 UTC |
2c5942d | Junio C Hamano | 26 May 2009, 02:01:50 UTC | Merge branch 'ar/unlink-err' into maint * ar/unlink-err: print unlink(2) errno in copy_or_link_directory replace direct calls to unlink(2) with unlink_or_warn Introduce an unlink(2) wrapper which gives warning if unlink failed | 26 May 2009, 02:01:50 UTC |
43f8f56 | Junio C Hamano | 26 May 2009, 02:01:41 UTC | Merge branch 'jk/maint-add-empty' into maint * jk/maint-add-empty: add: don't complain when adding empty project root | 26 May 2009, 02:01:41 UTC |
0e5168f | Jeff King | 25 May 2009, 10:33:15 UTC | fix cat-file usage message and documentation cat-file with an object on the command line requires an option to tell it what to output (type, size, pretty-print, etc). However, the square brackets in the usage imply that those options are not required. This patch switches them to parentheses to indicate "required but grouped-OR" (curly braces might also work, but this follows the convention used already by "git stash"). While we're at it, let's change the <sha1> specifier in the usage to <object>. That's what the documentation uses, and it does actually use the regular object lookup. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 May 2009, 19:08:15 UTC |
fa25075 | Jeff King | 25 May 2009, 10:40:54 UTC | fetch: report ref storage DF errors more accurately When we fail to store a fetched ref, we recommend that the user try running "git prune" to remove up any old refs that have been deleted by the remote, which would clear up any DF conflicts. However, ref storage might fail for other reasons (e.g., permissions problems) in which case the advice is useless and misleading. This patch detects when there is an actual DF situation and only issues the advice when one is found. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 May 2009, 19:07:07 UTC |
f475e08 | Jeff King | 25 May 2009, 10:37:15 UTC | lock_ref: inform callers of unavailable ref One of the ways that locking might fail is that there is a DF conflict between two refs (e.g., you want to lock "foo/bar" but "foo" already exists). In this case, we return an error, but there is no way for the caller to know the specific problem. This patch sets errno to ENOTDIR, which is the most sensible code. It's what we would see if the refs were stored purely in the filesystem (but these days we must check the namespace manually due to packed refs). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 May 2009, 19:06:54 UTC |
32a9023 | Johannes Sixt | 25 May 2009, 12:07:55 UTC | t3701: ensure correctly set up repository after skipped tests There are two tests that are skipped if file modes are not obeyed by the file system. In this case, the subsequent test failed because the repository was in an unexpected state. This corrects it. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 May 2009, 18:23:30 UTC |