summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2009-06-27fast-export: Document the fact that git-rev-list arguments are acceptedLibravatar Elijah Newren1-0/+6
Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-27Add new fast-export testcasesLibravatar Elijah Newren1-0/+88
The testcases test the new --tag-of-filtered-object option, the output when limiting what to export by path, and test behavior when no exact-ref revision is included (e.g. master~8 present on command line but not master). Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-27fast-export: Add a --tag-of-filtered-object option for newly dangling tagsLibravatar Elijah Newren2-2/+68
When providing a list of paths to limit what is exported, the object that a tag points to can be filtered out entirely. This new switch allows the user to specify what should happen to the tag in such a case. The default action, 'abort' will exit with an error message. With 'drop', the tag will simply be omitted from the output. With 'rewrite', if the object tagged was a commit, the tag will be modified to tag an alternate commit. The alternate commit is determined by treating the original commit as the "parent" of the tag and then using the parent rewriting algorithm of the revision traversal machinery (related to the "--parents" option of "git rev-list") Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-27fast-export: Do parent rewriting to avoid dropping relevant commitsLibravatar Elijah Newren1-0/+1
When specifying paths to export, parent rewriting must be turned on for fast-export to output anything at all. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-27fast-export: Make sure we show actual ref names instead of "(null)"Libravatar Elijah Newren1-4/+1
The code expects a ref name to be provided in commit->util. While there was some code to set commit->util, it only worked in cases where there was an unbroken chain of revisions from a ref to the relevant commit. In cases such as running git fast-export --parents master -- COPYING commit->util would fail to be set. The old method of setting commit->util has been removed in favor of requesting show_source from the revision traversal machinery (related to the "--source" option of "git log" family of commands.) However, this change does not fix cases like git fast export master~1 or git fast export :/arguments since in such cases commit->util will be "master~1" or ":/arguments" while we need the actual ref (e.g. "refs/heads/master") Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-27fast-export: Omit tags that tag treesLibravatar Elijah Newren2-1/+22
Commit c0582c53bcf4e83bba70e1ad23abbad31f96ebc8 introduced logic to just omit tags that point to tree objects. However, these objects were still being output and were pointing at "mark :0", which caused fast-import to crash. This patch makes sure such tags (including deeper nestings such as tags of tags of trees), are omitted. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-27fast-export: Set revs.topo_order before calling setup_revisionsLibravatar Elijah Newren1-1/+1
setup_revisions sets a variety of flags based on the setting of other flags, such as setting the limited flag when topo_order is set. To avoid circumventing any invariants created by setup_revisions, we set revs.topo_order before calling it rather than after. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-22Merge branch 'maint'Libravatar Junio C Hamano1-1/+1
* maint: t3700-add: add a POSIXPERM prerequisite to a new test
2009-06-22t3700-add: add a POSIXPERM prerequisite to a new testLibravatar Johannes Sixt1-1/+1
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>
2009-06-22Merge branch 'sb/maint-1.6.0-add-config-fix' into maintLibravatar Junio C Hamano2-2/+15
* sb/maint-1.6.0-add-config-fix: add: allow configurations to be overriden by command line
2009-06-21Sync with 1.6.3.3Libravatar Junio C Hamano5-12/+53
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-21GIT 1.6.3.3Libravatar Junio C Hamano3-2/+40
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-21Merge branch 'ak/maint-for-each-ref-no-lookup' into maintLibravatar Junio C Hamano1-9/+17
* ak/maint-for-each-ref-no-lookup: for-each-ref: Do not lookup objects when they will not be used
2009-06-21Merge branch 'rc/maint-http-local-slot-fix' into maintLibravatar Junio C Hamano2-0/+12
* rc/maint-http-local-slot-fix: http*: cleanup slot->local after fclose
2009-06-21Merge branch 'cb/maint-no-double-merge' into maintLibravatar Junio C Hamano2-1/+7
* cb/maint-no-double-merge: refuse to merge during a merge
2009-06-21Merge branch 'mn/maint-iconv-autoconf' into maintLibravatar Junio C Hamano1-0/+8
* mn/maint-iconv-autoconf: fix handling of iconv configuration options
2009-06-21Merge branch 'lt/maint-unsigned-left-shift' into maintLibravatar Junio C Hamano8-16/+12
* lt/maint-unsigned-left-shift: Fix big left-shifts of unsigned char
2009-06-21Merge branch 'pb/maint-1.6.2-userdiff-fix' into maintLibravatar Junio C Hamano2-7/+10
* pb/maint-1.6.2-userdiff-fix: upload-archive: fix infinite loop on Cygwin avoid exponential regex match for java and objc function names
2009-06-21attribute: whitespace set to true detects all errors known to gitLibravatar Junio C Hamano1-5/+7
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>
2009-06-21.gitattributes: CR at the end of the line is an errorLibravatar Nanako Shiraishi1-1/+1
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>
2009-06-21t3505: fix abuse of test_expect_codeLibravatar Junio C Hamano1-5/+5
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>
2009-06-20Merge branch 'maint'Libravatar Junio C Hamano2-3/+3
* maint: git-show-ref.txt: remove word and make consistent git-svn documentation: fix typo in 'rebase vs. pull/merge' section
2009-06-20Merge branch 'maint-1.6.2' into maintLibravatar Junio C Hamano3-7/+7
* 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
2009-06-20Merge branch 'maint-1.6.1' into maint-1.6.2Libravatar Junio C Hamano3-7/+7
* 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
2009-06-20Merge branch 'maint-1.6.0' into maint-1.6.1Libravatar Junio C Hamano3-7/+7
* 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
2009-06-20git-show-ref.txt: remove word and make consistentLibravatar Stephen Boyd1-2/+2
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>
2009-06-20Fix various sparse warnings in the git source codeLibravatar Linus Torvalds23-42/+42
There are a few remaining ones, but this fixes the trivial ones. It boils down to two main issues that sparse complains about: - warning: Using plain integer as NULL pointer Sparse doesn't like you using '0' instead of 'NULL'. For various good reasons, not the least of which is just the visual confusion. A NULL pointer is not an integer, and that whole "0 works as NULL" is a historical accident and not very pretty. A few of these remain: zlib is a total mess, and Z_NULL is just a 0. I didn't touch those. - warning: symbol 'xyz' was not declared. Should it be static? Sparse wants to see declarations for any functions you export. A lack of a declaration tends to mean that you should either add one, or you should mark the function 'static' to show that it's in file scope. A few of these remain: I only did the ones that should obviously just be made static. That 'wt_status_submodule_summary' one is debatable. It has a few related flags (like 'wt_status_use_color') which _are_ declared, and are used by builtin-commit.c. So maybe we'd like to export it at some point, but it's not declared now, and not used outside of that file, so 'static' it is in this patch. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-20Merge branch 'ph/submodule-rebase'Libravatar Junio C Hamano4-6/+86
* ph/submodule-rebase: git-submodule: add support for --merge. Conflicts: Documentation/git-submodule.txt git-submodule.sh
2009-06-20Merge branch 'jc/cache-tree'Libravatar Junio C Hamano7-44/+117
* jc/cache-tree: Avoid "diff-index --cached" optimization under --find-copies-harder Optimize "diff-index --cached" using cache-tree t4007: modernize the style cache-tree.c::cache_tree_find(): simplify internal API write-tree --ignore-cache-tree
2009-06-20Merge branch 'mg/pushurl'Libravatar Junio C Hamano9-17/+102
* mg/pushurl: avoid NULL dereference on failed malloc builtin-remote: Make "remote -v" display push urls builtin-remote: Show push urls as well technical/api-remote: Describe new struct remote member pushurl t5516: Check pushurl config setting Allow push and fetch urls to be different
2009-06-20Merge branch 'mn/maint-iconv-autoconf'Libravatar Junio C Hamano1-0/+8
* mn/maint-iconv-autoconf: fix handling of iconv configuration options
2009-06-20Merge branch 'sb/pull-rebase'Libravatar Junio C Hamano4-221/+43
* sb/pull-rebase: parse-remote: remove unused functions parse-remote: support default reflist in get_remote_merge_branch parse-remote: function to get the tracking branch to be merge
2009-06-20Merge branch 'pb/send-email-cccmd-fix'Libravatar Junio C Hamano4-10/+80
* pb/send-email-cccmd-fix: Test cccmd in t9001-send-email.sh and fix some bugs
2009-06-20Merge branch 'pb/maint-1.6.2-userdiff-fix'Libravatar Junio C Hamano2-7/+10
* pb/maint-1.6.2-userdiff-fix: upload-archive: fix infinite loop on Cygwin avoid exponential regex match for java and objc function names
2009-06-20Merge branch 'sb/maint-1.6.0-add-config-fix'Libravatar Junio C Hamano3-6/+19
* sb/maint-1.6.0-add-config-fix: add: allow configurations to be overriden by command line use xstrdup, not strdup in ll-merge.c Conflicts: builtin-add.c
2009-06-20Merge branch 'lt/maint-unsigned-left-shift'Libravatar Junio C Hamano8-16/+12
* lt/maint-unsigned-left-shift: Fix big left-shifts of unsigned char
2009-06-20git-svn documentation: fix typo in 'rebase vs. pull/merge' sectionLibravatar Miklos Vajna1-1/+1
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-20Merge git://git.kernel.org/pub/scm/gitk/gitkLibravatar Junio C Hamano2-348/+479
* git://git.kernel.org/pub/scm/gitk/gitk: gitk: Allow diff view without context lines gitk: Add another string to translation gitk: Add option 'Simple history' to the options menu gitk: Handle msysGit version during version comparisons gitk: Make more options easily accessible from Edit View dialog gitk: Check git version before using --textconv flag gitk: Use --textconv to generate diff text gitk: Update German translation.
2009-06-18add: allow configurations to be overriden by command lineLibravatar Stephen Boyd2-2/+15
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>
2009-06-18Merge branch 'maint'Libravatar Junio C Hamano4-19/+21
* maint: http.c: fix compiling with libcurl 7.9.2 import-tars: support symlinks pull, rebase: simplify to use die()
2009-06-18Merge branch 'sb/parse-options-integer'Libravatar Junio C Hamano4-48/+24
* sb/parse-options-integer: parse-options: simplify usage argh handling parse-options: make OPT_INTEGER's argh explicit
2009-06-18Merge branch 'ak/maint-for-each-ref-no-lookup'Libravatar Junio C Hamano1-9/+17
* ak/maint-for-each-ref-no-lookup: for-each-ref: Do not lookup objects when they will not be used
2009-06-18Add -k option to cvsexportcommit to revert expanded CVS keywords in CVS ↵Libravatar Alex Bennée2-3/+26
working tree before applying commit patch Depending on how your CVS->GIT conversion went you will have some unexpanded CVS keywords in your GIT repo. If any of your git commits touch these lines then the patch application will fail. This patch addresses that by adding an option that will revert and expanded CVS keywords to files in the working CVS directory that are affected by the commit being applied. Signed-off-by: Alex Bennée <alex@bennee.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-18http.c: fix compiling with libcurl 7.9.2Libravatar Mark Lodato1-4/+4
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>
2009-06-18Test cccmd in t9001-send-email.sh and fix some bugsLibravatar Paolo Bonzini4-10/+80
For another patch series I'm working on I needed some tests for the cc-cmd feature of git-send-email. This patch adds 3 tests for the feature and for the possibility to specify --suppress-cc multiple times, and fixes two bugs. The first bug is that the --suppress-cc option for `cccmd' was misspelled as `ccmd' in the code. The second bug, which is actually found only with my other series, is that the argument to the cccmd is never quoted, so the cccmd would fail with patch file names containing a space. A third bug I fix (in the docs) is that the bodycc argument was actually spelled ccbody in the documentation and bash completion. Signed-off-by: Paolo Bonzini <bonzini@gnu.org> Cc: Markus Heidelberg <markus.heidelberg@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-18import-tars: support symlinksLibravatar Johannes Schindelin1-5/+12
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>
2009-06-18upload-archive: fix infinite loop on CygwinLibravatar René Scharfe1-5/+7
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>
2009-06-18avoid exponential regex match for java and objc function namesLibravatar Paolo Bonzini1-2/+3
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>
2009-06-18Fix big left-shifts of unsigned charLibravatar Linus Torvalds8-16/+12
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>
2009-06-14pull, rebase: simplify to use die()Libravatar Stephen Boyd2-10/+5
Signed-off-by: Stephen Boyd <bebarino@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>