diff options
author | Junio C Hamano <junkio@cox.net> | 2007-04-10 13:53:07 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2007-04-10 13:53:07 -0700 |
commit | f8ce1829922ee13016d56c5de0bba2c87f1d4ede (patch) | |
tree | 264f6025c508fba6f4c6c9497424b90c829ce77f | |
parent | 8ff21b1a3307c7059ea1e00b5117a50a2bc5fec8 (diff) | |
parent | 8bd26c4a2f7539f6418934858710c674bb139cdd (diff) | |
download | git-f8ce1829922ee13016d56c5de0bba2c87f1d4ede.tar.gz git-f8ce1829922ee13016d56c5de0bba2c87f1d4ede.tar.xz |
Merge branch 'maint'
* maint:
Documentation: show-ref: document --exclude-existing
cvsexportcommit -p : fix the usage of git-apply -C.
-rw-r--r-- | Documentation/git-show-ref.txt | 16 | ||||
-rwxr-xr-x | git-cvsexportcommit.perl | 11 |
2 files changed, 24 insertions, 3 deletions
diff --git a/Documentation/git-show-ref.txt b/Documentation/git-show-ref.txt index 5973a8251..2355aa5e8 100644 --- a/Documentation/git-show-ref.txt +++ b/Documentation/git-show-ref.txt @@ -10,6 +10,7 @@ SYNOPSIS [verse] 'git-show-ref' [-q|--quiet] [--verify] [-h|--head] [-d|--dereference] [-s|--hash] [--abbrev] [--tags] [--heads] [--] <pattern>... +'git-show-ref' --exclude-existing[=pattern] DESCRIPTION ----------- @@ -19,6 +20,9 @@ commit IDs. Results can be filtered using a pattern and tags can be dereferenced into object IDs. Additionally, it can be used to test whether a particular ref exists. +The --exclude-existing form is a filter that does the inverse, it shows the +refs from stdin that don't exist in the local repository. + Use of this utility is encouraged in favor of directly accessing files under in the `.git` directory. @@ -61,6 +65,18 @@ OPTIONS Do not print any results to stdout. When combined with '--verify' this can be used to silently check if a reference exists. +--exclude-existing, --exclude-existing=pattern:: + + Make git-show-ref act as a filter that reads refs from stdin of the + form "^(?:<anything>\s)?<refname>(?:\^\{\})?$" and performs the + following actions on each: + (1) strip "^{}" at the end of line if any; + (2) ignore if pattern is provided and does not head-match refname; + (3) warn if refname is not a well-formed refname and skip; + (4) ignore if refname is a ref that exists in the local repository; + (5) otherwise output the line. + + <pattern>:: Show references matching one or more patterns. diff --git a/git-cvsexportcommit.perl b/git-cvsexportcommit.perl index 67224b444..6ed471918 100755 --- a/git-cvsexportcommit.perl +++ b/git-cvsexportcommit.perl @@ -124,12 +124,17 @@ close MSG; `git-diff-tree --binary -p $parent $commit >.cvsexportcommit.diff`;# || die "Cannot diff"; ## apply non-binary changes -my $fuzz = $opt_p ? 0 : 2; + +# In pedantic mode require all lines of context to match. In normal +# mode, be compatible with diff/patch: assume 3 lines of context and +# require at least one line match, i.e. ignore at most 2 lines of +# context, like diff/patch do by default. +my $context = $opt_p ? '' : '-C1'; print "Checking if patch will apply\n"; my @stat; -open APPLY, "GIT_DIR= git-apply -C$fuzz --binary --summary --numstat<.cvsexportcommit.diff|" || die "cannot patch"; +open APPLY, "GIT_DIR= git-apply $context --binary --summary --numstat<.cvsexportcommit.diff|" || die "cannot patch"; @stat=<APPLY>; close APPLY || die "Cannot patch"; my (@bfiles,@files,@afiles,@dfiles); @@ -196,7 +201,7 @@ if ($dirty) { } print "Applying\n"; -`GIT_DIR= git-apply -C$fuzz --binary --summary --numstat --apply <.cvsexportcommit.diff` || die "cannot patch"; +`GIT_DIR= git-apply $context --binary --summary --numstat --apply <.cvsexportcommit.diff` || die "cannot patch"; print "Patch applied successfully. Adding new files and directories to CVS\n"; my $dirtypatch = 0; |