diff options
author | Junio C Hamano <junkio@cox.net> | 2007-04-29 01:52:43 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2007-04-29 01:52:43 -0700 |
commit | 39231b1c32caee10c7ac3397341ea0c6cf56e7f9 (patch) | |
tree | 5e51fb9d639bf6b6b99ae5d01286360b7303f2f1 | |
parent | Merge branch 'maint' (diff) | |
parent | http.c: Fix problem with repeated calls of http_init (diff) | |
download | tgif-39231b1c32caee10c7ac3397341ea0c6cf56e7f9.tar.xz |
Merge branch 'maint'
* maint:
http.c: Fix problem with repeated calls of http_init
Add missing reference to GIT_COMMITTER_DATE in git-commit-tree documentation
Fix import-tars fix.
Update .mailmap with "Michael"
Do not barf on too long action description
Catch empty pathnames in trees during fsck
Don't allow empty pathnames in fast-import
import-tars: be nice to wrong directory modes
git-svn: Added 'find-rev' command
git shortlog documentation: add long options and fix a typo
-rw-r--r-- | .mailmap | 1 | ||||
-rw-r--r-- | Documentation/git-commit-tree.txt | 1 | ||||
-rw-r--r-- | Documentation/git-shortlog.txt | 8 | ||||
-rw-r--r-- | Documentation/git-svn.txt | 5 | ||||
-rw-r--r-- | Documentation/git.txt | 1 | ||||
-rw-r--r-- | builtin-fetch--tool.c | 5 | ||||
-rw-r--r-- | builtin-fsck.c | 6 | ||||
-rwxr-xr-x | contrib/fast-import/import-tars.perl | 1 | ||||
-rw-r--r-- | fast-import.c | 2 | ||||
-rwxr-xr-x | git-svn.perl | 24 | ||||
-rw-r--r-- | http.c | 1 |
11 files changed, 47 insertions, 8 deletions
@@ -23,6 +23,7 @@ Lars Doelle <lars.doelle@on-line.de> Lars Doelle <lars.doelle@on-line ! de> Lukas Sandström <lukass@etek.chalmers.se> Martin Langhoff <martin@catalyst.net.nz> +Michele Ballabio <barra_cuda@katamail.com> Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Ramsay Allan Jones <ramsay@ramsay1.demon.co.uk> René Scharfe <rene.scharfe@lsrfire.ath.cx> diff --git a/Documentation/git-commit-tree.txt b/Documentation/git-commit-tree.txt index cf25507f8f..1571dbbb74 100644 --- a/Documentation/git-commit-tree.txt +++ b/Documentation/git-commit-tree.txt @@ -60,6 +60,7 @@ either `.git/config` file, or using the following environment variables. GIT_AUTHOR_DATE GIT_COMMITTER_NAME GIT_COMMITTER_EMAIL + GIT_COMMITTER_DATE (nb "<", ">" and "\n"s are stripped) diff --git a/Documentation/git-shortlog.txt b/Documentation/git-shortlog.txt index 1c8c55ef6e..15cc6f77c1 100644 --- a/Documentation/git-shortlog.txt +++ b/Documentation/git-shortlog.txt @@ -9,7 +9,7 @@ SYNOPSIS -------- [verse] git-log --pretty=short | 'git-shortlog' [-h] [-n] [-s] -git-shortlog [-n|--number] [-s|--summary] [<committish>...] +git-shortlog [-n|--numbered] [-s|--summary] [<committish>...] DESCRIPTION ----------- @@ -22,14 +22,14 @@ Additionally, "[PATCH]" will be stripped from the commit description. OPTIONS ------- --h:: +-h, \--help:: Print a short usage message and exit. --n:: +-n, \--numbered:: Sort output according to the number of commits per author instead of author alphabetic order. --s:: +-s, \--summary:: Suppress commit description and provide a commit count summary only. FILES diff --git a/Documentation/git-svn.txt b/Documentation/git-svn.txt index a0d34e0058..a35b9de3bf 100644 --- a/Documentation/git-svn.txt +++ b/Documentation/git-svn.txt @@ -159,6 +159,11 @@ New features: Any other arguments are passed directly to `git log' -- +'find-rev':: + When given an SVN revision number of the form 'rN', returns the + corresponding git commit hash. When given a tree-ish, returns the + corresponding SVN revision number. + 'set-tree':: You should consider using 'dcommit' instead of this command. Commit specified commit or tree objects to SVN. This relies on diff --git a/Documentation/git.txt b/Documentation/git.txt index ca1f78f790..08ba53ae01 100644 --- a/Documentation/git.txt +++ b/Documentation/git.txt @@ -344,6 +344,7 @@ git Commits 'GIT_AUTHOR_DATE':: 'GIT_COMMITTER_NAME':: 'GIT_COMMITTER_EMAIL':: +'GIT_COMMITTER_DATE':: see gitlink:git-commit-tree[1] git Diffs diff --git a/builtin-fetch--tool.c b/builtin-fetch--tool.c index 3145c01f7e..2065466f27 100644 --- a/builtin-fetch--tool.c +++ b/builtin-fetch--tool.c @@ -35,16 +35,13 @@ static int update_ref(const char *action, unsigned char *sha1, unsigned char *oldval) { - int len; char msg[1024]; char *rla = getenv("GIT_REFLOG_ACTION"); static struct ref_lock *lock; if (!rla) rla = "(reflog update)"; - len = snprintf(msg, sizeof(msg), "%s: %s", rla, action); - if (sizeof(msg) <= len) - die("insanely long action"); + snprintf(msg, sizeof(msg), "%s: %s", rla, action); lock = lock_any_ref_for_update(refname, oldval); if (!lock) return 1; diff --git a/builtin-fsck.c b/builtin-fsck.c index fcb8ed5af1..44ce629a49 100644 --- a/builtin-fsck.c +++ b/builtin-fsck.c @@ -219,6 +219,7 @@ static int fsck_tree(struct tree *item) { int retval; int has_full_path = 0; + int has_empty_name = 0; int has_zero_pad = 0; int has_bad_modes = 0; int has_dup_entries = 0; @@ -242,6 +243,8 @@ static int fsck_tree(struct tree *item) if (strchr(name, '/')) has_full_path = 1; + if (!*name) + has_empty_name = 1; has_zero_pad |= *(char *)desc.buffer == '0'; update_tree_entry(&desc); @@ -291,6 +294,9 @@ static int fsck_tree(struct tree *item) if (has_full_path) { objwarning(&item->object, "contains full pathnames"); } + if (has_empty_name) { + objwarning(&item->object, "contains empty pathname"); + } if (has_zero_pad) { objwarning(&item->object, "contains zero-padded file modes"); } diff --git a/contrib/fast-import/import-tars.perl b/contrib/fast-import/import-tars.perl index 184214689d..d2363a415d 100755 --- a/contrib/fast-import/import-tars.perl +++ b/contrib/fast-import/import-tars.perl @@ -52,6 +52,7 @@ foreach my $tar_file (@ARGV) Z8 Z1 Z100 Z6 Z2 Z32 Z32 Z8 Z8 Z*', $_; last unless $name; + next if $name =~ m{/\z}; $mode = oct $mode; $size = oct $size; $mtime = oct $mtime; diff --git a/fast-import.c b/fast-import.c index c4c8cb905e..b4cbcd9011 100644 --- a/fast-import.c +++ b/fast-import.c @@ -1199,6 +1199,8 @@ static int tree_content_set( n = slash1 - p; else n = strlen(p); + if (!n) + die("Empty path component found in input"); for (i = 0; i < t->entry_count; i++) { e = t->entries[i]; diff --git a/git-svn.perl b/git-svn.perl index 7b5f8ab3be..4be8576894 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -141,6 +141,8 @@ my %cmd = ( 'color' => \$Git::SVN::Log::color, 'pager=s' => \$Git::SVN::Log::pager, } ], + 'find-rev' => [ \&cmd_find_rev, "Translate between SVN revision numbers and tree-ish", + { } ], 'rebase' => [ \&cmd_rebase, "Fetch and rebase your working directory", { 'merge|m|M' => \$_merge, 'verbose|v' => \$_verbose, @@ -428,6 +430,28 @@ sub cmd_dcommit { command_noisy(@finish, $gs->refname); } +sub cmd_find_rev { + my $revision_or_hash = shift; + my $result; + if ($revision_or_hash =~ /^r\d+$/) { + my $desired_revision = substr($revision_or_hash, 1); + my ($fh, $ctx) = command_output_pipe('rev-list', 'HEAD'); + while (my $hash = <$fh>) { + chomp($hash); + my (undef, $rev, undef) = cmt_metadata($hash); + if ($rev && $rev eq $desired_revision) { + $result = $hash; + last; + } + } + command_close_pipe($fh, $ctx); + } else { + my (undef, $rev, undef) = cmt_metadata($revision_or_hash); + $result = $rev; + } + print "$result\n" if $result; +} + sub cmd_rebase { command_noisy(qw/update-index --refresh/); my ($url, $rev, $uuid, $gs) = working_head_info('HEAD'); @@ -300,6 +300,7 @@ void http_cleanup(void) curl_global_cleanup(); curl_slist_free_all(pragma_header); + pragma_header = NULL; } struct active_request_slot *get_active_slot(void) |