Merge branch 'maint'
* maint: Remove a couple of duplicated include grep with unmerged index git-daemon: fix remote port number in log entry git-svn: t9114: verify merge commit message in test git-svn: fix dcommit clobbering when committing a series of diffs
This commit is contained in:
@ -343,7 +343,7 @@ static int external_grep(struct grep_opt *opt, const char **paths, int cached)
|
|||||||
memcpy(name + 2, ce->name, len + 1);
|
memcpy(name + 2, ce->name, len + 1);
|
||||||
}
|
}
|
||||||
argv[argc++] = name;
|
argv[argc++] = name;
|
||||||
if (argc < MAXARGS && !ce_stage(ce))
|
if (argc < MAXARGS)
|
||||||
continue;
|
continue;
|
||||||
status = flush_grep(opt, argc, nr, argv, &kept);
|
status = flush_grep(opt, argc, nr, argv, &kept);
|
||||||
if (0 < status)
|
if (0 < status)
|
||||||
|
@ -18,7 +18,6 @@
|
|||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#include <sys/socket.h>
|
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
@ -18,7 +18,6 @@
|
|||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#include <sys/socket.h>
|
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
4
daemon.c
4
daemon.c
@ -540,7 +540,7 @@ static int execute(struct sockaddr *addr)
|
|||||||
if (addr->sa_family == AF_INET) {
|
if (addr->sa_family == AF_INET) {
|
||||||
struct sockaddr_in *sin_addr = (void *) addr;
|
struct sockaddr_in *sin_addr = (void *) addr;
|
||||||
inet_ntop(addr->sa_family, &sin_addr->sin_addr, addrbuf, sizeof(addrbuf));
|
inet_ntop(addr->sa_family, &sin_addr->sin_addr, addrbuf, sizeof(addrbuf));
|
||||||
port = sin_addr->sin_port;
|
port = ntohs(sin_addr->sin_port);
|
||||||
#ifndef NO_IPV6
|
#ifndef NO_IPV6
|
||||||
} else if (addr && addr->sa_family == AF_INET6) {
|
} else if (addr && addr->sa_family == AF_INET6) {
|
||||||
struct sockaddr_in6 *sin6_addr = (void *) addr;
|
struct sockaddr_in6 *sin6_addr = (void *) addr;
|
||||||
@ -550,7 +550,7 @@ static int execute(struct sockaddr *addr)
|
|||||||
inet_ntop(AF_INET6, &sin6_addr->sin6_addr, buf, sizeof(addrbuf) - 1);
|
inet_ntop(AF_INET6, &sin6_addr->sin6_addr, buf, sizeof(addrbuf) - 1);
|
||||||
strcat(buf, "]");
|
strcat(buf, "]");
|
||||||
|
|
||||||
port = sin6_addr->sin6_port;
|
port = ntohs(sin6_addr->sin6_port);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
loginfo("Connection from %s:%d", addrbuf, port);
|
loginfo("Connection from %s:%d", addrbuf, port);
|
||||||
|
48
git-svn.perl
48
git-svn.perl
@ -406,7 +406,8 @@ sub cmd_dcommit {
|
|||||||
"If these changes depend on each other, re-running ",
|
"If these changes depend on each other, re-running ",
|
||||||
"without --no-rebase will be required."
|
"without --no-rebase will be required."
|
||||||
}
|
}
|
||||||
foreach my $d (@$linear_refs) {
|
while (1) {
|
||||||
|
my $d = shift @$linear_refs or last;
|
||||||
unless (defined $last_rev) {
|
unless (defined $last_rev) {
|
||||||
(undef, $last_rev, undef) = cmt_metadata("$d~1");
|
(undef, $last_rev, undef) = cmt_metadata("$d~1");
|
||||||
unless (defined $last_rev) {
|
unless (defined $last_rev) {
|
||||||
@ -439,14 +440,14 @@ sub cmd_dcommit {
|
|||||||
|
|
||||||
# we always want to rebase against the current HEAD,
|
# we always want to rebase against the current HEAD,
|
||||||
# not any head that was passed to us
|
# not any head that was passed to us
|
||||||
my @diff = command('diff-tree', 'HEAD',
|
my @diff = command('diff-tree', $d,
|
||||||
$gs->refname, '--');
|
$gs->refname, '--');
|
||||||
my @finish;
|
my @finish;
|
||||||
if (@diff) {
|
if (@diff) {
|
||||||
@finish = rebase_cmd();
|
@finish = rebase_cmd();
|
||||||
print STDERR "W: HEAD and ", $gs->refname,
|
print STDERR "W: $d and ", $gs->refname,
|
||||||
" differ, using @finish:\n",
|
" differ, using @finish:\n",
|
||||||
"@diff";
|
join("\n", @diff), "\n";
|
||||||
} else {
|
} else {
|
||||||
print "No changes between current HEAD and ",
|
print "No changes between current HEAD and ",
|
||||||
$gs->refname,
|
$gs->refname,
|
||||||
@ -455,6 +456,45 @@ sub cmd_dcommit {
|
|||||||
@finish = qw/reset --mixed/;
|
@finish = qw/reset --mixed/;
|
||||||
}
|
}
|
||||||
command_noisy(@finish, $gs->refname);
|
command_noisy(@finish, $gs->refname);
|
||||||
|
if (@diff) {
|
||||||
|
@refs = ();
|
||||||
|
my ($url_, $rev_, $uuid_, $gs_) =
|
||||||
|
working_head_info($head, \@refs);
|
||||||
|
my ($linear_refs_, $parents_) =
|
||||||
|
linearize_history($gs_, \@refs);
|
||||||
|
if (scalar(@$linear_refs) !=
|
||||||
|
scalar(@$linear_refs_)) {
|
||||||
|
fatal "# of revisions changed ",
|
||||||
|
"\nbefore:\n",
|
||||||
|
join("\n", @$linear_refs),
|
||||||
|
"\n\nafter:\n",
|
||||||
|
join("\n", @$linear_refs_), "\n",
|
||||||
|
'If you are attempting to commit ',
|
||||||
|
"merges, try running:\n\t",
|
||||||
|
'git rebase --interactive',
|
||||||
|
'--preserve-merges ',
|
||||||
|
$gs->refname,
|
||||||
|
"\nBefore dcommitting";
|
||||||
|
}
|
||||||
|
if ($url_ ne $url) {
|
||||||
|
fatal "URL mismatch after rebase: ",
|
||||||
|
"$url_ != $url";
|
||||||
|
}
|
||||||
|
if ($uuid_ ne $uuid) {
|
||||||
|
fatal "uuid mismatch after rebase: ",
|
||||||
|
"$uuid_ != $uuid";
|
||||||
|
}
|
||||||
|
# remap parents
|
||||||
|
my (%p, @l, $i);
|
||||||
|
for ($i = 0; $i < scalar @$linear_refs; $i++) {
|
||||||
|
my $new = $linear_refs_->[$i] or next;
|
||||||
|
$p{$new} =
|
||||||
|
$parents->{$linear_refs->[$i]};
|
||||||
|
push @l, $new;
|
||||||
|
}
|
||||||
|
$parents = \%p;
|
||||||
|
$linear_refs = \@l;
|
||||||
|
}
|
||||||
$last_rev = $cmt_rev;
|
$last_rev = $cmt_rev;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
56
t/t9106-git-svn-dcommit-clobber-series.sh
Executable file
56
t/t9106-git-svn-dcommit-clobber-series.sh
Executable file
@ -0,0 +1,56 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Copyright (c) 2007 Eric Wong
|
||||||
|
test_description='git-svn dcommit clobber series'
|
||||||
|
. ./lib-git-svn.sh
|
||||||
|
|
||||||
|
test_expect_success 'initialize repo' "
|
||||||
|
mkdir import &&
|
||||||
|
cd import &&
|
||||||
|
awk 'BEGIN { for (i = 1; i < 64; i++) { print i } }' > file
|
||||||
|
svn import -m 'initial' . $svnrepo &&
|
||||||
|
cd .. &&
|
||||||
|
git svn init $svnrepo &&
|
||||||
|
git svn fetch &&
|
||||||
|
test -e file
|
||||||
|
"
|
||||||
|
|
||||||
|
test_expect_success '(supposedly) non-conflicting change from SVN' "
|
||||||
|
test x\"\`sed -n -e 58p < file\`\" = x58 &&
|
||||||
|
test x\"\`sed -n -e 61p < file\`\" = x61 &&
|
||||||
|
svn co $svnrepo tmp &&
|
||||||
|
cd tmp &&
|
||||||
|
perl -i -p -e 's/^58\$/5588/' file &&
|
||||||
|
perl -i -p -e 's/^61\$/6611/' file &&
|
||||||
|
test x\"\`sed -n -e 58p < file\`\" = x5588 &&
|
||||||
|
test x\"\`sed -n -e 61p < file\`\" = x6611 &&
|
||||||
|
svn commit -m '58 => 5588, 61 => 6611' &&
|
||||||
|
cd ..
|
||||||
|
"
|
||||||
|
|
||||||
|
test_expect_success 'some unrelated changes to git' "
|
||||||
|
echo hi > life &&
|
||||||
|
git update-index --add life &&
|
||||||
|
git commit -m hi-life &&
|
||||||
|
echo bye >> life &&
|
||||||
|
git commit -m bye-life life
|
||||||
|
"
|
||||||
|
|
||||||
|
test_expect_success 'change file but in unrelated area' "
|
||||||
|
test x\"\`sed -n -e 4p < file\`\" = x4 &&
|
||||||
|
test x\"\`sed -n -e 7p < file\`\" = x7 &&
|
||||||
|
perl -i -p -e 's/^4\$/4444/' file &&
|
||||||
|
perl -i -p -e 's/^7\$/7777/' file &&
|
||||||
|
test x\"\`sed -n -e 4p < file\`\" = x4444 &&
|
||||||
|
test x\"\`sed -n -e 7p < file\`\" = x7777 &&
|
||||||
|
git commit -m '4 => 4444, 7 => 7777' file &&
|
||||||
|
git svn dcommit &&
|
||||||
|
svn up tmp &&
|
||||||
|
cd tmp &&
|
||||||
|
test x\"\`sed -n -e 4p < file\`\" = x4444 &&
|
||||||
|
test x\"\`sed -n -e 7p < file\`\" = x7777 &&
|
||||||
|
test x\"\`sed -n -e 58p < file\`\" = x5588 &&
|
||||||
|
test x\"\`sed -n -e 61p < file\`\" = x6611
|
||||||
|
"
|
||||||
|
|
||||||
|
test_done
|
@ -86,4 +86,9 @@ test_expect_success 'verify post-merge ancestry' "
|
|||||||
git cat-file commit refs/heads/svn^ | grep '^friend$'
|
git cat-file commit refs/heads/svn^ | grep '^friend$'
|
||||||
"
|
"
|
||||||
|
|
||||||
|
test_expect_success 'verify merge commit message' "
|
||||||
|
git rev-list --pretty=raw -1 refs/heads/svn | \
|
||||||
|
grep \" Merge branch 'merge' into svn\"
|
||||||
|
"
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
Reference in New Issue
Block a user