c793430 | Shawn O. Pearce | 28 February 2011, 20:52:39 UTC | Limit file descriptors used by packs Rather than using 'errno == EMFILE' after a failed open() call to indicate the process is out of file descriptors and an LRU pack window should be closed, place a hard upper limit on the number of open packs based on the actual rlimit of the process. By using a hard upper limit that is below the rlimit of the current process it is not necessary to check for EMFILE on every single fd-allocating system call. Instead reserving 25 file descriptors makes it safe to assume the system call won't fail due to being over the filedescriptor limit. Here 25 is chosen as a WAG, but considers 3 for stdin/stdout/stderr, and at least a few for other Git code to operate on temporary files. An additional 20 is reserved as it is not known what the C library needs to perform other services on Git's behalf, such as nsswitch or name resolution. This fixes a case where running `git gc --auto` in a repository with more than 1024 packs (but an rlimit of 1024 open fds) fails due to the temporary output file not being able to allocate a file descriptor. The output file is opened by pack-objects after object enumeration and delta compression are done, both of which have already opened all of the packs and fully populated the file descriptor table. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 28 February 2011, 21:08:31 UTC |
62270f6 | Eric Hanchrow | 26 February 2011, 03:29:42 UTC | branch_merged: fix grammar in warning Signed-off-by: Eric Hanchrow <eric.hanchrow@gmail.com> Helped-by: Jay Soffian <jaysoffian@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 February 2011, 08:29:58 UTC |
4cc6260 | Clemens Buchacher | 21 February 2011, 20:05:25 UTC | Documentation: clarify -u<mode> option defaults Signed-off-by: Clemens Buchacher <drizzd@aon.at> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 February 2011, 05:48:55 UTC |
d5a719e | Ævar Arnfjörð Bjarmason | 19 February 2011, 18:29:09 UTC | t/t7500-commit.sh: use test_cmp instead of test Change commit_msg_is() in t/t7500-commit.sh to use test_cmp instead of the shell's test function. Now if a test fails we'll get test_cmp output showing us what failed. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 21 February 2011, 18:55:53 UTC |
49151d8 | Ævar Arnfjörð Bjarmason | 19 February 2011, 18:16:19 UTC | t/gitweb-lib.sh: Ensure that errors are shown for --debug --immediate Because '--immediate' stops test suite after first error, therefore in this mode test_debug 'cat gitweb.log' was never ran, thus in effect negating effect of '--debug' option. This made finidng the cause of errors in gitweb test sute difficult. Modify the gitweb_run test subroutine to run test_debug itself in the case of errors (and also remove "test_debug 'cat gitweb.log'" from gitweb tests). This makes it possible to run *gitweb tests* with --immediate ---debug combination of options; also it makes gitweb tests to not output spurious debug data that is not considered error. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Jakub Narębski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 21 February 2011, 18:38:40 UTC |
98885c2 | Ævar Arnfjörð Bjarmason | 19 February 2011, 15:27:42 UTC | gitweb/gitweb.perl: don't call S_ISREG() with undef Change S_ISREG($to_mode_oct) to S_ISREG($from_mode_oct) in the branch that handles from modes, not to modes. This logic appears to have been caused by copy/paste programming by Jakub Narebski in e8e41a93. It would be better to rewrite this code not to be duplicated, but I haven't done so. This issue caused a failing test on perl 5.13.9, which has a warning that turned this up: gitweb.perl: Use of uninitialized value in subroutine entry at /home/avar/g/git/t/../gitweb/gitweb.perl line 4415. Which caused the Git test suite to fail on this test: ./t9500-gitweb-standalone-no-errors.sh (Wstat: 256 Tests: 90 Failed: 84) Failed tests: 1-8, 10-36, 38-45, 47-48, 50-88 Non-zero exit status: 1 Reported-by: perl 5.13.9 Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Acked-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 21 February 2011, 18:37:31 UTC |
0f54b7d | Ævar Arnfjörð Bjarmason | 19 February 2011, 15:27:41 UTC | gitweb/gitweb.perl: remove use of qw(...) as parentheses Using the qw(...) construct as implicit parentheses was deprecated in perl 5.13.5. Change the relevant code in gitweb to not use the deprecated construct. The offending code was introduced in 3562198b by Jakub Narebski. The issue is that perl will now warn about this: $ perl -wE 'for my $i qw(a b) { say $i }' Use of qw(...) as parentheses is deprecated at -e line 1. a b This caused gitweb.perl to warn on perl 5.13.5 and above, and these tests to fail on those perl versions: ./t9501-gitweb-standalone-http-status.sh (Wstat: 256 Tests: 11 Failed: 10) Failed tests: 2-11 Non-zero exit status: 1 ./t9502-gitweb-standalone-parse-output.sh (Wstat: 256 Tests: 10 Failed: 9) Failed tests: 2-10 Non-zero exit status: 1 Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Acked-by: Jakub Narębski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 21 February 2011, 18:36:56 UTC |
759e84f | Junio C Hamano | 16 February 2011, 22:33:11 UTC | Merge branch 'maint-1.7.3' into maint * maint-1.7.3: | 16 February 2011, 22:33:11 UTC |
da656f1 | Junio C Hamano | 16 February 2011, 22:32:59 UTC | Merge branch 'maint-1.7.2' into maint-1.7.3 * maint-1.7.2: fast-import: introduce "feature notes" command fast-import: clarify documentation of "feature" command | 16 February 2011, 22:32:59 UTC |
6a7f71d | Junio C Hamano | 16 February 2011, 22:32:54 UTC | Merge branch 'maint-1.7.1' into maint-1.7.2 * maint-1.7.1: fast-import: introduce "feature notes" command fast-import: clarify documentation of "feature" command | 16 February 2011, 22:32:54 UTC |
206af7c | Junio C Hamano | 16 February 2011, 22:32:47 UTC | Merge branch 'maint-1.7.0' into maint-1.7.1 * maint-1.7.0: fast-import: introduce "feature notes" command fast-import: clarify documentation of "feature" command | 16 February 2011, 22:32:47 UTC |
8559425 | Nguyễn Thái Ngọc Duy | 14 February 2011, 13:02:51 UTC | parse_tag_buffer(): do not prefixcmp() out of range There is a check (size < 64) at the beginning of the function, but that only covers object+type lines. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 16 February 2011, 18:05:14 UTC |
24231e0 | Michael J Gruber | 14 February 2011, 16:48:08 UTC | pull: do not display fetch usage on --help-all Currently, "git pull --help-all" displays the fetch usage info. Make it equivalent to "git pull -h" instead since "--help-all" is documented in gitcli(7). Do not try to sanitize the pull option parser (aka last hair puller). Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 15 February 2011, 18:53:24 UTC |
cfb5e6b | Michael J Gruber | 15 February 2011, 13:09:10 UTC | git-tag.txt: list all modes in the description Currently, the description sounds as if it applied always, but most of its content is true in "create tag mode" only. Make this clearer by listing all modes upfront. Also, sneak in some linguistic improvements and make it clearer that lightweight tags are "created" because "written" may be misread as "are output". Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 15 February 2011, 18:51:08 UTC |
8547090 | Michael J Gruber | 15 February 2011, 13:09:09 UTC | commit,status: describe -u likewise They differ by one character only. Being exactly equal should help translations. Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 15 February 2011, 18:51:08 UTC |
08918e4 | Michael J Gruber | 15 February 2011, 13:09:08 UTC | add: describe --patch like checkout, reset Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 15 February 2011, 18:51:08 UTC |
3f40617 | Michael J Gruber | 15 February 2011, 13:09:07 UTC | commit,merge,tag: describe -m likewise This also removes the superfluous "specify" and rewords the misleading "if any" which sounds as if omitting "-m" would omit the merge commit message. (It means "if a merge commit is created at all".) Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 15 February 2011, 18:51:08 UTC |
5027fa8 | Michael J Gruber | 15 February 2011, 13:09:06 UTC | clone,init: describe --template using the same wording This also corrects a wrong description for clone. Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 15 February 2011, 18:51:08 UTC |
ba9d7fe | Michael J Gruber | 15 February 2011, 13:09:05 UTC | commit,status: describe --porcelain just like push Push has the clearer description, so take that one for all. Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 15 February 2011, 18:51:08 UTC |
726c4e3 | Michael J Gruber | 15 February 2011, 13:09:04 UTC | commit,tag: use same wording for -F Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 15 February 2011, 18:51:08 UTC |
1e58dba | Ralf Wildenhues | 02 January 2011, 10:24:55 UTC | configure: use AC_LANG_PROGRAM consistently Avoid warnings from Autoconf 2.68 about missing use of AC_LANG_PROGRAM and friends. Quoting autoconf-2.68/NEWS: ** The macros AC_PREPROC_IFELSE, AC_COMPILE_IFELSE, AC_LINK_IFELSE, and AC_RUN_IFELSE now warn if the first argument failed to use AC_LANG_SOURCE or AC_LANG_PROGRAM to generate the conftest file contents. A new macro AC_LANG_DEFINES_PROVIDED exists if you have a compelling reason why you cannot use AC_LANG_SOURCE but must avoid the warning. The underlying reason for that change is that AC_LANG_{SOURCE,PROGRAM} take care to supply the previously computed set of #defines (and include standard headers if so desired) for preprocessed languages like C and C++. In some cases, AC_LANG_PROGRAM is already used but not sufficiently m4-quoted, so we just need to add another set of [quotes] to prevent the autoconf warning from being triggered bogusly. Quoting all arguments (except when calling special macros that need to be expanded before recursion) is better style, anyway. These and more rules are described in detail in 'info Autoconf "Programming in M4"'. No change in the resulting config.mak.autogen after running ./configure intended. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 14 February 2011, 18:55:15 UTC |
62b8102 | Jeff King | 12 February 2011, 05:18:51 UTC | string_list_append: always set util pointer to NULL It is not immediately obvious that the util field may contain random bytes after appending an item. Especially since the string_list_insert* functions _do_ explicitly zero the util pointer. This does not appear to be a bug in any current git code, as all callers either fill in the util field immediately or never use it. However, it is worth it to be less surprising to new users of the string-list API who may expect it to be intialized to NULL. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 14 February 2011, 18:55:03 UTC |
dab0d41 | Jonathan Nieder | 07 February 2011, 08:17:27 UTC | correct type of EMPTY_TREE_SHA1_BIN Functions such as hashcmp that expect a binary SHA-1 value take parameters of type "unsigned char *" to avoid accepting a textual SHA-1 passed by mistake. Unfortunately, this means passing the string literal EMPTY_TREE_SHA1_BIN requires an ugly cast. Tweak the definition of EMPTY_TREE_SHA1_BIN to produce a value of more convenient type. In the future the definition might change to extern const unsigned char empty_tree_sha1_bin[20]; #define EMPTY_TREE_SHA1_BIN empty_tree_sha1_bin Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 14 February 2011, 18:48:06 UTC |
9971d6d | Junio C Hamano | 11 February 2011, 22:39:55 UTC | Git 1.7.4.1 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 11 February 2011, 22:39:55 UTC |
b76bf72 | Junio C Hamano | 11 February 2011, 22:26:10 UTC | Merge branch 'jc/fsck-fixes' into maint * jc/fsck-fixes: fsck: do not give up too early in fsck_dir() fsck: drop unused parameter from traverse_one_object() | 11 February 2011, 22:26:10 UTC |
3446a54 | Chris Packham | 10 February 2011, 22:59:31 UTC | clone: fixup recurse_submodules option The recurse_submodules option was added in ccdd3da6 to bring 'git clone' into line with 'git fetch' and future commands. The correct option should have been "recurse-submodules". Signed-off-by: Chris Packham <judge.packham@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 11 February 2011, 22:24:34 UTC |
7532345 | Jonathan Nieder | 11 February 2011, 10:36:44 UTC | svn-fe: warn about experimental status svn-fe is young and some coming cleanups might involve backward incompatible UI changes. Add some words of warning to the manual so early adopters that are not following the project closely don't get burned. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 11 February 2011, 18:13:14 UTC |
1368f65 | Jonathan Nieder | 11 October 2010, 02:59:26 UTC | compat: helper for detecting unsigned overflow The idiom (a + b < a) works fine for detecting that an unsigned integer has overflowed, but a more explicit unsigned_add_overflows(a, b) might be easier to read. Define such a macro, expanding roughly to ((a) < UINT_MAX - (b)). Because the expansion uses each argument only once outside of sizeof() expressions, it is safe to use with arguments that have side effects. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 10 February 2011, 21:47:56 UTC |
a8e4a59 | Junio C Hamano | 10 February 2011, 00:40:12 UTC | Merge branch 'maint-1.7.0' into maint * maint-1.7.0: fast-import: introduce "feature notes" command fast-import: clarify documentation of "feature" command Conflicts: Documentation/git-fast-import.txt | 10 February 2011, 00:40:12 UTC |
547e8b9 | Jonathan Nieder | 09 February 2011, 22:43:57 UTC | fast-import: introduce "feature notes" command Here is a 'feature' command for streams to use to require support for the notemodify (N) command. When the 'feature' facility was introduced (v1.7.0-rc0~95^2~4, 2009-12-04), the notes import feature was old news (v1.6.6-rc0~21^2~8, 2009-10-09) and it was not obvious it deserved to be a named feature. But now that is clear, since all major non-git fast-import backends lack support for it. Details: on git version with this patch applied, any "feature notes" command in the features/options section at the beginning of a stream will be treated as a no-op. On fast-import implementations without the feature (and older git versions), the command instead errors out with a message like This version of fast-import does not support feature notes. So by declaring use of notes at the beginning of a stream, frontends can avoid wasting time and other resources when the backend does not support notes. (This would be especially important for backends that do not support rewinding history after a botched import.) Improved-by: Thomas Rast <trast@student.ethz.ch> Improved-by: Sverre Rabbelier <srabbelier@gmail.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 10 February 2011, 00:06:51 UTC |
68595cd | Jonathan Nieder | 28 November 2010, 19:43:57 UTC | fast-import: clarify documentation of "feature" command The "feature" command allows streams to specify options for the import that must not be ignored. Logically, they are part of the stream, even though technically most supported features are synonyms to command-line options. Make this more obvious by being more explicit about how the analogy between most "feature" commands and command-line options works. Treat the feature (import-marks) that does not fit this analogy separately. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Acked-by: Sverre Rabbelier <srabbelier@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 10 February 2011, 00:06:47 UTC |
59ab4eb | Uwe Kleine-König | 09 February 2011, 09:04:43 UTC | Documentation/merge subtree How-To: fix typo Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 09 February 2011, 22:03:51 UTC |
7811d96 | Jens Lehmann | 07 February 2011, 22:24:54 UTC | pull: Document the "--[no-]recurse-submodules" options In commits be254a0ea9 and 7dce19d374 the handling of the new fetch options "--[no-]recurse-submodules" had been added to git-pull.sh. But they were not documented as the pull options they now are, so let's fix that. Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 07 February 2011, 23:19:09 UTC |
cf548ca | Jonathan Nieder | 05 January 2011, 00:36:34 UTC | quote.h: simplify the inclusion Attempting to include quote.h without first including strbuf.h results in warnings: ./quote.h:33:33: warning: ‘struct strbuf’ declared inside parameter list ./quote.h:33:33: warning: its scope is only this definition or declaration, which is probably not what you want ./quote.h:34:34: warning: ‘struct strbuf’ declared inside parameter list ... Add a toplevel declaration for struct strbuf to avoid this. While at it, stop including system headers from quote.h. git source files already need to include git-compat-util.h sooner to ensure the appropriate feature test macros are defined. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 07 February 2011, 23:15:17 UTC |
c4d9986 | Nguyễn Thái Ngọc Duy | 05 February 2011, 14:03:02 UTC | sha1_object_info: examine cached_object store too Cached object store was added in d66b37b (Add pretend_sha1_file() interface. - 2007-02-04) as a way to temporarily inject some objects to object store. But only read_sha1_file() knows about this store. While it will return an object from this store, sha1_object_info() will happily say "object not found". Teach sha1_object_info() about the cached store for consistency. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 07 February 2011, 23:05:48 UTC |
c597ba8 | Nguyễn Thái Ngọc Duy | 05 February 2011, 14:03:01 UTC | sha1_file.c: move find_cached_object up so sha1_object_info can use it Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 07 February 2011, 23:05:46 UTC |
cf7b1ca | Nguyễn Thái Ngọc Duy | 05 February 2011, 10:52:20 UTC | Add const to parse_{commit,tag}_buffer() Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 07 February 2011, 23:04:42 UTC |
a2b7a3b | Nguyễn Thái Ngọc Duy | 03 February 2011, 06:23:34 UTC | diff: support --cached on unborn branches "git diff --cached" (without revision) used to mean "git diff --cached HEAD" (i.e. the user was too lazy to type HEAD). This "correctly" failed when there was no commit yet. But was that correctness useful? This patch changes the definition of what particular command means. It is a request to show what _would_ be committed without further "git add". The internal implementation is the same "git diff --cached HEAD" when HEAD exists, but when there is no commit yet, it compares the index with an empty tree object to achieve the desired result. 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> | 07 February 2011, 23:04:30 UTC |
2e9c878 | Jakub Narebski | 03 February 2011, 23:20:48 UTC | gitweb: Mention optional Perl modules in INSTALL Some optional additional Perl modules are required for some of extra features. Mention those in gitweb/INSTALL. Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 07 February 2011, 22:29:15 UTC |
80aa55b | Sitaram Chamarty | 03 February 2011, 01:00:32 UTC | post-receive-email: suppress error if description file missing Signed-off-by: Sitaram Chamarty <sitaramc@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 07 February 2011, 22:28:21 UTC |
c91897b | Pat Thoyts | 03 February 2011, 15:31:44 UTC | t7407: fix line endings for mingw build Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 07 February 2011, 22:27:46 UTC |
97a853d | Johannes Sixt | 03 February 2011, 15:31:43 UTC | t4120-apply-popt: help systems with core.filemode=false A test case verifies that filemode-only patches work as expected. Help systems where "test -x" does not work by applying the test patch also to the index, where the effects can be verified even on such systems. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 07 February 2011, 22:27:25 UTC |
899663f | Pat Thoyts | 03 February 2011, 15:31:42 UTC | t3509: use unconstrained initial test to setup repository. The first test did not run on msysGit due to the SYMLINKS constraint and so subsequent tests failed because the test repository was not initialized. Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 07 February 2011, 22:27:10 UTC |
13af8cb | Johannes Sixt | 04 February 2011, 08:41:58 UTC | start_command: flush buffers in the WIN32 code path as well The POSIX code path did The Right Thing already, but we have to do the same on Windows. This bug caused failures in t5526-fetch-submodules, where the output of 'git fetch --recurse-submodules' was in the wrong order. Debugged-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 07 February 2011, 22:18:56 UTC |
787d2a7 | Shawn O. Pearce | 06 February 2011, 00:58:53 UTC | bundle: Use OFS_DELTA in bundle files git-bundle first appeared in 2e0afafe ("Add git-bundle") in Feb 2007, and first shipped in Git 1.5.1. However, OFS_DELTA is an even earlier invention, coming about in eb32d236 ("introduce delta objects with offset to base") in Sep 2006, and first shipped in Git 1.4.4.5. OFS_DELTA is smaller, about 3.2%-5% smaller, and is typically faster to access than REF_DELTA because the exact location of the delta base is available after parsing the object header. Since all bundle aware versions of Git are also OFS_DELTA aware, just make it the default. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Acked-by: Nicolas Pitre <nico@fluxnic.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 07 February 2011, 06:50:26 UTC |
597a630 | Junio C Hamano | 31 January 2011, 18:05:57 UTC | Merge branch 'jl/fetch-submodule-recursive' into maint * jl/fetch-submodule-recursive: t5526: Fix wrong argument order in "git config" | 31 January 2011, 18:05:57 UTC |
a2a5646 | Jens Lehmann | 31 January 2011, 16:51:25 UTC | t5526: Fix wrong argument order in "git config" This fixes a typo where the "git config" arguments "-f" and "--unset" were swapped leading to the creation of a "--unset" file. Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 31 January 2011, 17:59:04 UTC |
7ed863a | Junio C Hamano | 30 January 2011, 19:53:13 UTC | Git 1.7.4 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 31 January 2011, 03:02:37 UTC |
ea6f0a2 | Junio C Hamano | 26 January 2011, 21:01:54 UTC | fsck: do not give up too early in fsck_dir() When there is a random garbage file whose name happens to be 38-byte long in a .git/objects/??/ directory, the loop terminated prematurely without marking all the other files that it hasn't checked in the readdir() loop. Treat such a file just like any other garbage file, and do not break out of the readdir() loop. While at it, replace repeated sprintf() calls to a single one outside the loop. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 January 2011, 20:58:15 UTC |
a1cdc25 | Junio C Hamano | 26 January 2011, 20:46:55 UTC | fsck: drop unused parameter from traverse_one_object() Also add comments to seemingly unsafe pointer dereferences, that are all safe. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 January 2011, 20:58:10 UTC |
d2d434b | Adam Tkac | 27 January 2011, 12:51:51 UTC | Don't pass "--xhtml" to hightlight in gitweb.perl script. The "--xhtml" option is supported only in highlight < 3.0. There is no option to enforce (X)HTML output format compatible with both highlight < 3.0 and highlight >= 3.0. However default output format is HTML so we don't need to explicitly specify it. Signed-off-by: Adam Tkac <atkac@redhat.com> Helped-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 January 2011, 20:13:07 UTC |
99e63ef | Junio C Hamano | 27 January 2011, 18:27:49 UTC | Merge branch 'maint' * maint: rebase -i: clarify in-editor documentation of "exec" tests: sanitize more git environment variables fast-import: treat filemodify with empty tree as delete rebase: give a better error message for bogus branch rebase: use explicit "--" with checkout Conflicts: t/t9300-fast-import.sh | 27 January 2011, 18:27:49 UTC |
960ac5f | Jonathan Nieder | 21 January 2011, 00:36:24 UTC | rebase -i: clarify in-editor documentation of "exec" The hints in the current "instruction sheet" template look like so: # Rebase 3f14246..a1d7e01 onto 3f14246 # # Commands: # p, pick = use commit # r, reword = use commit, but edit the commit message # e, edit = use commit, but stop for amending # s, squash = use commit, but meld into previous commit # f, fixup = like "squash", but discard this commit's log message # x <cmd>, exec <cmd> = Run a shell command <cmd>, and stop if it fails # # If you remove a line here THAT COMMIT WILL BE LOST. # However, if you remove everything, the rebase will be aborted. # This does not make it clear that the format of each line is <insn> <commit id> <explanatory text that will be printed> but the reader will probably infer that from the automatically generated pick examples above it. What about the "exec" instruction? By analogy, I might imagine that the format of that line is "exec <command> <explanatory text>", and the "x <cmd>" hint does not address that question (at first I read it as taking an argument <cmd> that is the name of a shell). Meanwhile, the mention of <cmd> makes the hints harder to scan as a table. So remove the <cmd> and add some words to remind the reader that "exec" runs a command named by the rest of the line. To make room, it is left to the manpage to explain that that command is run using $SHELL and that nonzero status from that command will pause the rebase. Wording from Junio. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 January 2011, 18:24:09 UTC |
a1231de | Jeff King | 26 January 2011, 20:33:32 UTC | tests: sanitize more git environment variables These variables should generally not be set in one's environment, but they do get set by rebase, which means doing an interactive rebase like: pick abcd1234 foo exec make test will cause false negatives in the test suite. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 January 2011, 18:24:05 UTC |
5ce3258 | Junio C Hamano | 27 January 2011, 18:23:53 UTC | Merge branch 'jn/fast-import-empty-tree-removal' into maint * jn/fast-import-empty-tree-removal: fast-import: treat filemodify with empty tree as delete | 27 January 2011, 18:23:53 UTC |
8fe533f | Jonathan Nieder | 27 January 2011, 06:07:49 UTC | fast-import: treat filemodify with empty tree as delete Normal git processes do not allow one to build a tree with an empty subtree entry without trying hard at it. This is in keeping with the general UI philosophy: git tracks content, not empty directories. v1.7.3-rc0~75^2 (2010-06-30) changed that by making it easy to include an empty subtree in fast-import's active commit: M 040000 4b825dc642cb6eb9a060e54bf8d69288fbee4904 subdir One can trigger this by reading an empty tree (for example, the tree corresponding to an empty root commit) and trying to move it to a subtree. It is better and more closely analogous to 'git read-tree --prefix' to treat such commands as requests to remove the subtree. Noticed-by: David Barr <david.barr@cordelta.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 January 2011, 18:22:37 UTC |
4ac5356 | Jeff King | 27 January 2011, 00:27:11 UTC | rebase: give a better error message for bogus branch When you give a non-existent branch to git-rebase, it spits out the usage. This can be confusing, since you may understand the usage just fine, but simply have made a mistake in the branch name. Before: $ git rebase origin bogus Usage: git rebase ... After: $ git rebase origin bogus fatal: no such branch: bogus Usage: git rebase ... Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 January 2011, 01:27:02 UTC |
3b21a43 | Jeff King | 27 January 2011, 00:26:59 UTC | rebase: use explicit "--" with checkout In the case of a ref/pathname conflict, checkout will already do the right thing and checkout the ref. However, for a non-existant ref, this has two advantages: 1. If a file with that pathname exists, rebase will refresh the file from the index and then rebase the current branch instead of producing an error. 2. If no such file exists, the error message using an explicit "--" is better: # before $ git rebase -i origin bogus error: pathspec 'bogus' did not match any file(s) known to git. Could not checkout bogus # after $ git rebase -i origin bogus fatal: invalid reference: bogus Could not checkout bogus The problems seem to be trigger-able only through "git rebase -i", as regular git-rebase checks the validity of the branch parameter as a ref very early on. However, it doesn't hurt to be defensive. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 January 2011, 01:26:58 UTC |
630fc78 | Junio C Hamano | 24 January 2011, 19:00:00 UTC | Git 1.7.4-rc3 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 January 2011, 19:00:00 UTC |
342953a | Junio C Hamano | 24 January 2011, 18:54:12 UTC | Merge branch 'as/userdiff-pascal' * as/userdiff-pascal: userdiff: match Pascal class methods | 24 January 2011, 18:54:12 UTC |
0efbb7d | Junio C Hamano | 24 January 2011, 18:53:09 UTC | Merge branch 'jn/setup-fixes' * jn/setup-fixes: t1510: fix typo in the comment of a test Documentation updates for 'GIT_WORK_TREE without GIT_DIR' historical usecase Subject: setup: officially support --work-tree without --git-dir tests: compress the setup tests tests: cosmetic improvements to the repo-setup test t/README: hint about using $(pwd) rather than $PWD in tests Fix expected values of setup tests on Windows | 24 January 2011, 18:53:09 UTC |
6abbee8 | Jonathan Nieder | 22 January 2011, 20:02:48 UTC | t1510: fix typo in the comment of a test Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 January 2011, 18:14:57 UTC |
ea472c1 | Junio C Hamano | 23 January 2011, 23:49:41 UTC | Documentation updates for 'GIT_WORK_TREE without GIT_DIR' historical usecase Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 January 2011, 18:13:59 UTC |
4868b2e | Jonathan Nieder | 19 January 2011, 12:42:30 UTC | Subject: setup: officially support --work-tree without --git-dir The original intention of --work-tree was to allow people to work in a subdirectory of their working tree that does not have an embedded .git directory. Because their working tree, which their $cwd was in, did not have an embedded .git, they needed to use $GIT_DIR to specify where it is, and because this meant there was no way to discover where the root level of the working tree was, so we needed to add $GIT_WORK_TREE to tell git where it was. However, this facility has long been (mis)used by people's scripts to start git from a working tree _with_ an embedded .git directory, let git find .git directory, and then pretend as if an unrelated directory were the associated working tree of the .git directory found by the discovery process. It happens to work in simple cases, and is not worth causing "regression" to these scripts. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 21 January 2011, 22:31:24 UTC |
8c0db6f | Jonathan Nieder | 21 January 2011, 18:37:34 UTC | Documentation: do not treat reset --keep as a special case The current treatment of "git reset --keep" emphasizes how it differs from --hard (treatment of local changes) and how it breaks down into plumbing (git read-tree -m -u HEAD <commit> followed by git update-ref HEAD <commit>). This can discourage people from using it, since it might seem to be a complex or niche option. Better to emphasize what the --keep flag is intended for --- moving the index and worktree from one commit to another, like "git checkout" would --- so the reader can make a more informed decision about the appropriate situations in which to use it. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 21 January 2011, 20:41:14 UTC |
25f3af3 | Björn Steinbrink | 20 January 2011, 20:12:20 UTC | Correctly report corrupted objects The errno check added in commit 3ba7a06 "A loose object is not corrupt if it cannot be read due to EMFILE" only checked for whether errno is not ENOENT and thus incorrectly treated "no error" as an error condition. Because of that, it never reached the code path that would report that the object is corrupted and instead caused funny errors like: fatal: failed to read object 333c4768ce595793fdab1ef3a036413e2a883853: Success So we have to extend the check to cover the case in which the object file was successfully read, but its contents are corrupted. Reported-by: Will Palmer <wmpalmer@gmail.com> Signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 20 January 2011, 21:18:51 UTC |
786dabe | Jonathan Nieder | 19 January 2011, 12:40:51 UTC | tests: compress the setup tests New test helpers: - setup_repo, to initialize a repository or gitfile pointing to a repository, with core.bare and core.worktree set as specified; - try_case, to run setup from a given directory and validate the result, with GIT_DIR and GIT_WORK_TREE set as specified; - try_repo, to initialize a repository and call "try_case" from the toplevel and a subdirectory; - run_wt_tests, to run a battery of tests that check for sane behavior when GIT_WORK_TREE is set to various positions relative to the .git dir and cwd. Use these helpers to make the test shorter, less repetitive, and (one hopes) easier to understand and modify. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 19 January 2011, 18:27:16 UTC |
91c031d | Jonathan Nieder | 19 January 2011, 12:38:22 UTC | tests: cosmetic improvements to the repo-setup test Give an overview in "sh t1510-repo-setup.sh --help" output. Waste some vertical and horizontal space for clearer code. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 19 January 2011, 18:27:16 UTC |
b20e9b0 | Junio C Hamano | 19 January 2011, 16:33:54 UTC | Merge branch 'maint' * maint: exec_cmd: remove unused extern | 19 January 2011, 16:33:54 UTC |
b312b41 | Erik Faye-Lund | 10 January 2011, 22:00:49 UTC | exec_cmd: remove unused extern This definition was added by commit 77cb17e9, but it's left unused since commit 511707d. Remove the left-over definition. Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 19 January 2011, 16:27:22 UTC |
14154ce | Junio C Hamano | 19 January 2011, 16:26:47 UTC | Merge branch 'jn/gitweb-no-logo' into maint * jn/gitweb-no-logo: gitweb: make logo optional | 19 January 2011, 16:26:47 UTC |
ae830c2 | Junio C Hamano | 19 January 2011, 16:26:44 UTC | Merge branch 'jk/diff-driver-binary-doc' into maint * jk/diff-driver-binary-doc: docs: explain diff.*.binary option | 19 January 2011, 16:26:44 UTC |
8a59702 | Junio C Hamano | 19 January 2011, 16:26:41 UTC | Merge branch 'tr/submodule-relative-scp-url' into maint * tr/submodule-relative-scp-url: submodule: fix relative url parsing for scp-style origin | 19 January 2011, 16:26:41 UTC |
ea95907 | Junio C Hamano | 19 January 2011, 16:26:24 UTC | Merge branch 'rj/maint-difftool-cygwin-workaround' into maint * rj/maint-difftool-cygwin-workaround: difftool: Fix failure on Cygwin | 19 January 2011, 16:26:24 UTC |
f8d0215 | Junio C Hamano | 19 January 2011, 16:26:17 UTC | Merge branch 'rj/maint-test-fixes' into maint * rj/maint-test-fixes: t9501-*.sh: Fix a test failure on Cygwin lib-git-svn.sh: Add check for mis-configured web server variables lib-git-svn.sh: Avoid setting web server variables unnecessarily t9142: Move call to start_httpd into the setup test t3600-rm.sh: Don't pass a non-existent prereq to test #15 | 19 January 2011, 16:26:17 UTC |
305579f | Junio C Hamano | 19 January 2011, 16:26:04 UTC | Merge branch 'jn/maint-gitweb-pathinfo-fix' into maint * jn/maint-gitweb-pathinfo-fix: gitweb: Fix handling of whitespace in generated links | 19 January 2011, 16:26:04 UTC |
3a1882c | Junio C Hamano | 19 January 2011, 16:25:52 UTC | Merge branch 'ak/describe-exact' into maint * ak/describe-exact: describe: Delay looking up commits until searching for an inexact match describe: Store commit_names in a hash table by commit SHA1 describe: Do not use a flex array in struct commit_name describe: Use for_each_rawref | 19 January 2011, 16:25:52 UTC |
267684f | Junio C Hamano | 19 January 2011, 16:25:46 UTC | Merge branch 'jn/maint-fast-import-object-reuse' into maint * jn/maint-fast-import-object-reuse: fast-import: insert new object entries at start of hash bucket | 19 January 2011, 16:25:46 UTC |
f326a06 | Junio C Hamano | 19 January 2011, 16:25:41 UTC | Merge branch 'jn/submodule-b-current' into maint * jn/submodule-b-current: git submodule: Remove now obsolete tests before cloning a repo git submodule -b ... of current HEAD fails | 19 January 2011, 16:25:41 UTC |
d84f280 | Junio C Hamano | 19 January 2011, 16:25:38 UTC | Merge branch 'jc/maint-svn-info-test-fix' into maint * jc/maint-svn-info-test-fix: t9119: do not compare "Text Last Updated" line from "svn info" | 19 January 2011, 16:25:38 UTC |
0bc6180 | Junio C Hamano | 19 January 2011, 16:25:31 UTC | Merge branch 'nd/maint-relative' into maint * nd/maint-relative: get_cwd_relative(): do not misinterpret root path | 19 January 2011, 16:25:31 UTC |
e595910 | Jonathan Nieder | 16 January 2011, 02:22:35 UTC | Documentation/fast-import: put explanation of M 040000 <dataref> "" in context Omit needless words ("Additionally ... <path> may also" is redundant). While at it, place the explanation of this special case after the general rules for paths to provide the reader with some context. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 19 January 2011, 00:51:13 UTC |
5ee5f5a | Ramsay Jones | 11 January 2011, 18:17:21 UTC | svndump.c: Fix a printf format compiler warning In particular, on systems that define uint32_t as an unsigned long, gcc complains as follows: CC vcs-svn/svndump.o vcs-svn/svndump.c: In function `svndump_read': vcs-svn/svndump.c:215: warning: int format, uint32_t arg (arg 2) In order to suppress the warning we use the C99 format specifier macro PRIu32 from <inttypes.h>. Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> Acked-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 19 January 2011, 00:48:47 UTC |
60a2e33 | Jonathan Nieder | 16 January 2011, 03:49:40 UTC | remote-ext: do not segfault for blank lines Instead of stripping space characters past the beginning of the line and overflowing a buffer, stop at the beginning of the line (mimicking the corresponding fix in remote-fd). The argument to isspace does not need to be cast explicitly because git isspace takes care of that already. Noticed-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 18 January 2011, 18:18:25 UTC |
898243b | Jonathan Nieder | 16 January 2011, 02:16:05 UTC | Documentation/fast-import: capitalize beginning of sentence Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 18 January 2011, 18:15:59 UTC |
4fb40c2 | Jonathan Nieder | 16 January 2011, 01:08:42 UTC | ll-merge: simplify opts == NULL case As long as sizeof(struct ll_merge_options) is small, there is not much reason not to keep a copy of the default merge options in the BSS section. In return, we get clearer code and one less stack frame in the opts == NULL case. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 16 January 2011, 04:34:14 UTC |
adf872e | Junio C Hamano | 13 January 2011, 19:42:01 UTC | Git 1.7.4-rc2 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 13 January 2011, 20:14:18 UTC |
477039c | Junio C Hamano | 13 January 2011, 19:39:18 UTC | Merge branch 'jn/gitweb-no-logo' * jn/gitweb-no-logo: gitweb: make logo optional | 13 January 2011, 19:39:18 UTC |
17e1c9e | Junio C Hamano | 13 January 2011, 19:38:05 UTC | Merge branch 'jn/perl-funcname' * jn/perl-funcname: userdiff/perl: catch BEGIN/END/... and POD as headers diff: funcname and word patterns for perl | 13 January 2011, 19:38:05 UTC |
17fd68d | Junio C Hamano | 13 January 2011, 19:36:12 UTC | Merge branch 'sr/gitweb-hilite-more' * sr/gitweb-hilite-more: gitweb: remove unnecessary test when closing file descriptor gitweb: add extensions to highlight feature map | 13 January 2011, 19:36:12 UTC |
857ba70 | Junio C Hamano | 13 January 2011, 19:36:05 UTC | Merge branch 'rj/svn-test' * rj/svn-test: lib-git-svn.sh: Move web-server handling code into separate function | 13 January 2011, 19:36:05 UTC |
7810c6b | Junio C Hamano | 13 January 2011, 19:35:28 UTC | Merge branch 'rj/test-fixes' * rj/test-fixes: t4135-*.sh: Skip the "backslash" tests on cygwin t3032-*.sh: Do not strip CR from line-endings while grepping on MinGW t3032-*.sh: Pass the -b (--binary) option to sed on cygwin t6038-*.sh: Pass the -b (--binary) option to sed on cygwin Conflicts: t/t3032-merge-recursive-options.sh | 13 January 2011, 19:35:28 UTC |
37ee62b | Junio C Hamano | 13 January 2011, 19:34:56 UTC | Merge branch 'jk/diff-driver-binary-doc' * jk/diff-driver-binary-doc: docs: explain diff.*.binary option | 13 January 2011, 19:34:56 UTC |
4b297df | Junio C Hamano | 13 January 2011, 19:34:52 UTC | Merge branch 'jn/t9010-work-around-broken-svnadmin' * jn/t9010-work-around-broken-svnadmin: t9010: svnadmin can fail even if available | 13 January 2011, 19:34:52 UTC |
4f93fc7 | Junio C Hamano | 13 January 2011, 19:34:39 UTC | Merge branch 'tr/submodule-relative-scp-url' * tr/submodule-relative-scp-url: submodule: fix relative url parsing for scp-style origin | 13 January 2011, 19:34:39 UTC |
3e70e37 | Michael J Gruber | 13 January 2011, 09:35:34 UTC | RelNotes/1.7.4: minor fixes Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 13 January 2011, 19:32:39 UTC |
9cf3f14 | Thomas Rast | 13 January 2011, 11:30:23 UTC | t0000: quote TAP snippets in test code t0000 contains two snippets of actual test output. This causes problems when passing -v to the test[*]: the test infrastructure echoes the tests before running them, and the TAP parser then sees this test output and concludes that two tests failed and that the TAP output was badly formatted. Guard against this by quoting the output in the source. [*] either by running 'make smoke' with GIT_TEST_OPTS=-v, or with prove ./t0000-basic.sh :: -v Signed-off-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 13 January 2011, 19:32:31 UTC |
d2f15e2 | Junio C Hamano | 13 January 2011, 05:26:51 UTC | Merge branch 'maint' * maint: commit: suggest --amend --reset-author to fix commiter identity | 13 January 2011, 05:26:51 UTC |
3f14246 | Matthieu Moy | 12 January 2011, 18:29:14 UTC | commit: suggest --amend --reset-author to fix commiter identity Since the message advises to fix the configuration first, the advantage of using this command is that it is cut-and-paste ready, while using --author='...' requires the user to type his name and email again. Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Acked-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 12 January 2011, 20:43:58 UTC |
7fad99e | Ramsay Jones | 10 January 2011, 23:21:26 UTC | t9157-*.sh: Make the svn version check more precise These tests require an svn version 1.5 or newer to run correctly. In particular, all 1.4.x versions and earlier are too old, so fix up the case label regex to cover this range exactly. [Fix provided by Anders Kaseorg <andersk@MIT.EDU>] Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 11 January 2011, 21:01:43 UTC |