Merge git://git.bogomips.org/git-svn
* git://git.bogomips.org/git-svn: Document git-svn's first-parent rule git svn: attempt to create empty dirs on clone+rebase git svn: add authorsfile test case for ~/.gitconfig git svn: read global+system config for clone+init git svn: handle SVN merges from revisions past the tip of the branch
This commit is contained in:
commit
643faeea5f
@ -320,6 +320,13 @@ Any other arguments are passed directly to 'git log'
|
||||
directories. The output is suitable for appending to
|
||||
the $GIT_DIR/info/exclude file.
|
||||
|
||||
'mkdirs'::
|
||||
Attempts to recreate empty directories that core git cannot track
|
||||
based on information in $GIT_DIR/svn/<refname>/unhandled.log files.
|
||||
Empty directories are automatically recreated when using
|
||||
"git svn clone" and "git svn rebase", so "mkdirs" is intended
|
||||
for use after commands like "git checkout" or "git reset".
|
||||
|
||||
'commit-diff'::
|
||||
Commits the diff of two tree-ish arguments from the
|
||||
command-line. This command does not rely on being inside an `git svn
|
||||
@ -735,6 +742,16 @@ merges you've made. Furthermore, if you merge or pull from a git branch
|
||||
that is a mirror of an SVN branch, 'dcommit' may commit to the wrong
|
||||
branch.
|
||||
|
||||
If you do merge, note the following rule: 'git svn dcommit' will
|
||||
attempt to commit on top of the SVN commit named in
|
||||
------------------------------------------------------------------------
|
||||
git log --grep=^git-svn-id: --first-parent -1
|
||||
------------------------------------------------------------------------
|
||||
You 'must' therefore ensure that the most recent commit of the branch
|
||||
you want to dcommit to is the 'first' parent of the merge. Chaos will
|
||||
ensue otherwise, especially if the first parent is an older commit on
|
||||
the same SVN branch.
|
||||
|
||||
'git clone' does not clone branches under the refs/remotes/ hierarchy or
|
||||
any 'git svn' metadata, or config. So repositories created and managed with
|
||||
using 'git svn' should use 'rsync' for cloning, if cloning is to be done
|
||||
|
57
git-svn.perl
57
git-svn.perl
@ -168,6 +168,9 @@ my %cmd = (
|
||||
'Create a .gitignore per svn:ignore',
|
||||
{ 'revision|r=i' => \$_revision
|
||||
} ],
|
||||
'mkdirs' => [ \&cmd_mkdirs ,
|
||||
"recreate empty directories after a checkout",
|
||||
{ 'revision|r=i' => \$_revision } ],
|
||||
'propget' => [ \&cmd_propget,
|
||||
'Print the value of a property on a file or directory',
|
||||
{ 'revision|r=i' => \$_revision } ],
|
||||
@ -274,7 +277,7 @@ unless ($cmd && $cmd =~ /(?:clone|init|multi-init)$/) {
|
||||
|
||||
my %opts = %{$cmd{$cmd}->[2]} if (defined $cmd);
|
||||
|
||||
read_repo_config(\%opts);
|
||||
read_git_config(\%opts);
|
||||
if ($cmd && ($cmd eq 'log' || $cmd eq 'blame')) {
|
||||
Getopt::Long::Configure('pass_through');
|
||||
}
|
||||
@ -769,6 +772,7 @@ sub cmd_rebase {
|
||||
$_fetch_all ? $gs->fetch_all : $gs->fetch;
|
||||
}
|
||||
command_noisy(rebase_cmd(), $gs->refname);
|
||||
$gs->mkemptydirs;
|
||||
}
|
||||
|
||||
sub cmd_show_ignore {
|
||||
@ -830,6 +834,12 @@ sub cmd_create_ignore {
|
||||
});
|
||||
}
|
||||
|
||||
sub cmd_mkdirs {
|
||||
my ($url, $rev, $uuid, $gs) = working_head_info('HEAD');
|
||||
$gs ||= Git::SVN->new;
|
||||
$gs->mkemptydirs($_revision);
|
||||
}
|
||||
|
||||
sub canonicalize_path {
|
||||
my ($path) = @_;
|
||||
my $dot_slash_added = 0;
|
||||
@ -1196,6 +1206,7 @@ sub post_fetch_checkout {
|
||||
command_noisy(qw/read-tree -m -u -v HEAD HEAD/);
|
||||
print STDERR "Checked out HEAD:\n ",
|
||||
$gs->full_url, " r", $gs->last_rev, "\n";
|
||||
$gs->mkemptydirs($gs->last_rev);
|
||||
}
|
||||
|
||||
sub complete_svn_url {
|
||||
@ -1390,8 +1401,7 @@ sub load_authors {
|
||||
}
|
||||
|
||||
# convert GetOpt::Long specs for use by git-config
|
||||
sub read_repo_config {
|
||||
return unless -d $ENV{GIT_DIR};
|
||||
sub read_git_config {
|
||||
my $opts = shift;
|
||||
my @config_only;
|
||||
foreach my $o (keys %$opts) {
|
||||
@ -2725,6 +2735,34 @@ sub do_fetch {
|
||||
$self->make_log_entry($rev, \@parents, $ed);
|
||||
}
|
||||
|
||||
sub mkemptydirs {
|
||||
my ($self, $r) = @_;
|
||||
my %empty_dirs = ();
|
||||
|
||||
open my $fh, '<', "$self->{dir}/unhandled.log" or return;
|
||||
binmode $fh or croak "binmode: $!";
|
||||
while (<$fh>) {
|
||||
if (defined $r && /^r(\d+)$/) {
|
||||
last if $1 > $r;
|
||||
} elsif (/^ \+empty_dir: (.+)$/) {
|
||||
$empty_dirs{$1} = 1;
|
||||
} elsif (/^ \-empty_dir: (.+)$/) {
|
||||
delete $empty_dirs{$1};
|
||||
}
|
||||
}
|
||||
close $fh;
|
||||
foreach my $d (sort keys %empty_dirs) {
|
||||
$d = uri_decode($d);
|
||||
next if -d $d;
|
||||
if (-e _) {
|
||||
warn "$d exists but is not a directory\n";
|
||||
} else {
|
||||
print "creating empty directory: $d\n";
|
||||
mkpath([$d]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub get_untracked {
|
||||
my ($self, $ed) = @_;
|
||||
my @out;
|
||||
@ -2950,8 +2988,11 @@ sub find_extra_svn_parents {
|
||||
my $bottom_commit =
|
||||
$gs->rev_map_get($bottom, $self->ra_uuid) ||
|
||||
$gs->rev_map_get($bottom+1, $self->ra_uuid);
|
||||
my $top_commit =
|
||||
$gs->rev_map_get($top, $self->ra_uuid);
|
||||
my $top_commit;
|
||||
for (; !$top_commit && $top >= $bottom; --$top) {
|
||||
$top_commit =
|
||||
$gs->rev_map_get($top, $self->ra_uuid);
|
||||
}
|
||||
|
||||
unless ($top_commit and $bottom_commit) {
|
||||
warn "W:unknown path/rev in svn:mergeinfo "
|
||||
@ -3554,6 +3595,12 @@ sub uri_encode {
|
||||
$f
|
||||
}
|
||||
|
||||
sub uri_decode {
|
||||
my ($f) = @_;
|
||||
$f =~ s#%([0-9a-fA-F]{2})#chr(hex($1))#eg;
|
||||
$f
|
||||
}
|
||||
|
||||
sub remove_username {
|
||||
$_[0] =~ s{^([^:]*://)[^@]+@}{$1};
|
||||
}
|
||||
|
@ -19,7 +19,7 @@ test_expect_success 'init and fetch repository' '
|
||||
'
|
||||
|
||||
test_expect_success 'create file in existing ugly and empty dir' '
|
||||
mkdir "#{bad_directory_name}" &&
|
||||
mkdir -p "#{bad_directory_name}" &&
|
||||
echo hi > "#{bad_directory_name}/ foo" &&
|
||||
git update-index --add "#{bad_directory_name}/ foo" &&
|
||||
git commit -m "new file in ugly parent" &&
|
||||
@ -37,7 +37,7 @@ test_expect_success 'rename pretty file' '
|
||||
git update-index --add pretty &&
|
||||
git commit -m "pretty :x" &&
|
||||
git svn dcommit &&
|
||||
mkdir regular_dir_name &&
|
||||
mkdir -p regular_dir_name &&
|
||||
git mv pretty regular_dir_name/pretty &&
|
||||
git commit -m "moved pretty file" &&
|
||||
git svn dcommit
|
||||
|
@ -91,4 +91,27 @@ test_expect_success 'fetch continues after authors-file is fixed' '
|
||||
)
|
||||
'
|
||||
|
||||
test_expect_success 'fresh clone with svn.authors-file in config' '
|
||||
(
|
||||
rm -r "$GIT_DIR" &&
|
||||
test x = x"$(git config svn.authorsfile)" &&
|
||||
HOME="`pwd`" &&
|
||||
export HOME &&
|
||||
test_config="$HOME"/.gitconfig &&
|
||||
unset GIT_CONFIG_NOGLOBAL &&
|
||||
unset GIT_DIR &&
|
||||
unset GIT_CONFIG &&
|
||||
git config --global \
|
||||
svn.authorsfile "$HOME"/svn-authors &&
|
||||
test x"$HOME"/svn-authors = x"$(git config svn.authorsfile)" &&
|
||||
git svn clone "$svnrepo" gitconfig.clone &&
|
||||
cd gitconfig.clone &&
|
||||
nr_ex=$(git log | grep "^Author:.*example.com" | wc -l) &&
|
||||
nr_rev=$(git rev-list HEAD | wc -l) &&
|
||||
test $nr_rev -eq $nr_ex
|
||||
)
|
||||
'
|
||||
|
||||
test_debug 'GIT_DIR=gitconfig.clone/.git git log'
|
||||
|
||||
test_done
|
||||
|
85
t/t9146-git-svn-empty-dirs.sh
Executable file
85
t/t9146-git-svn-empty-dirs.sh
Executable file
@ -0,0 +1,85 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (c) 2009 Eric Wong
|
||||
|
||||
test_description='git svn creates empty directories'
|
||||
. ./lib-git-svn.sh
|
||||
|
||||
test_expect_success 'initialize repo' '
|
||||
for i in a b c d d/e d/e/f "weird file name"
|
||||
do
|
||||
svn_cmd mkdir -m "mkdir $i" "$svnrepo"/"$i"
|
||||
done
|
||||
'
|
||||
|
||||
test_expect_success 'clone' 'git svn clone "$svnrepo" cloned'
|
||||
|
||||
test_expect_success 'empty directories exist' '
|
||||
(
|
||||
cd cloned &&
|
||||
for i in a b c d d/e d/e/f "weird file name"
|
||||
do
|
||||
if ! test -d "$i"
|
||||
then
|
||||
echo >&2 "$i does not exist"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
)
|
||||
'
|
||||
|
||||
test_expect_success 'more emptiness' '
|
||||
svn_cmd mkdir -m "bang bang" "$svnrepo"/"! !"
|
||||
'
|
||||
|
||||
test_expect_success 'git svn rebase creates empty directory' '
|
||||
( cd cloned && git svn rebase )
|
||||
test -d cloned/"! !"
|
||||
'
|
||||
|
||||
test_expect_success 'git svn mkdirs recreates empty directories' '
|
||||
(
|
||||
cd cloned &&
|
||||
rm -r * &&
|
||||
git svn mkdirs &&
|
||||
for i in a b c d d/e d/e/f "weird file name" "! !"
|
||||
do
|
||||
if ! test -d "$i"
|
||||
then
|
||||
echo >&2 "$i does not exist"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
)
|
||||
'
|
||||
|
||||
test_expect_success 'git svn mkdirs -r works' '
|
||||
(
|
||||
cd cloned &&
|
||||
rm -r * &&
|
||||
git svn mkdirs -r7 &&
|
||||
for i in a b c d d/e d/e/f "weird file name"
|
||||
do
|
||||
if ! test -d "$i"
|
||||
then
|
||||
echo >&2 "$i does not exist"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
if test -d "! !"
|
||||
then
|
||||
echo >&2 "$i should not exist"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
git svn mkdirs -r8 &&
|
||||
if ! test -d "! !"
|
||||
then
|
||||
echo >&2 "$i not exist"
|
||||
exit 1
|
||||
fi
|
||||
)
|
||||
'
|
||||
|
||||
test_done
|
@ -15,7 +15,11 @@ test_expect_success 'load svn dump' "
|
||||
git svn fetch --all
|
||||
"
|
||||
|
||||
test_expect_success 'svn merges were represented coming in' "
|
||||
test_expect_success 'represent svn merges without intervening commits' "
|
||||
[ `git cat-file commit HEAD^1 | grep parent | wc -l` -eq 2 ]
|
||||
"
|
||||
|
||||
test_expect_success 'represent svn merges with intervening commits' "
|
||||
[ `git cat-file commit HEAD | grep parent | wc -l` -eq 2 ]
|
||||
"
|
||||
|
||||
|
@ -28,6 +28,10 @@ svn cp trunk branches/left
|
||||
|
||||
echo "Committing BRANCH POINT"
|
||||
svn commit -m "make left branch"
|
||||
svn cp trunk branches/right
|
||||
|
||||
echo "Committing other BRANCH POINT"
|
||||
svn commit -m "make right branch"
|
||||
cd branches/left/
|
||||
|
||||
#$sm init
|
||||
@ -64,7 +68,33 @@ git cat-file blob b51ad431:Makefile > Makefile
|
||||
|
||||
svn resolved Makefile
|
||||
|
||||
svn commit -m "Merge trunk"
|
||||
svn commit -m "Merge trunk 1"
|
||||
|
||||
# create commits on both branches
|
||||
|
||||
cd ../branches/left
|
||||
git cat-file blob ff5ebe39:Makefile > Makefile
|
||||
echo "Committing BRANCH UPDATE 4"
|
||||
svn commit -m "left update 4"
|
||||
|
||||
cd ../right
|
||||
git cat-file blob b5039db6:Makefile > Makefile
|
||||
echo "Committing other BRANCH UPDATE 1"
|
||||
svn commit -m "right update 1"
|
||||
|
||||
# merge to trun again
|
||||
|
||||
cd ../..
|
||||
svn update
|
||||
cd trunk
|
||||
|
||||
svn merge ../branches/left --accept postpone
|
||||
|
||||
git cat-file blob b51ad431:Makefile > Makefile
|
||||
|
||||
svn resolved Makefile
|
||||
|
||||
svn commit -m "Merge trunk 2"
|
||||
|
||||
cd ../..
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
SVN-fs-dump-format-version: 2
|
||||
|
||||
UUID: 1ce241d1-ba54-4eb9-bded-03057fe48a33
|
||||
UUID: 1530d5a2-a1dc-4438-8ad5-d95e96db8945
|
||||
|
||||
Revision-number: 0
|
||||
Prop-content-length: 56
|
||||
@ -9,12 +9,12 @@ Content-length: 56
|
||||
K 8
|
||||
svn:date
|
||||
V 27
|
||||
2009-10-20T01:33:37.692723Z
|
||||
2009-11-12T20:29:38.812226Z
|
||||
PROPS-END
|
||||
|
||||
Revision-number: 1
|
||||
Prop-content-length: 123
|
||||
Content-length: 123
|
||||
Prop-content-length: 127
|
||||
Content-length: 127
|
||||
|
||||
K 7
|
||||
svn:log
|
||||
@ -22,12 +22,12 @@ V 24
|
||||
Setup trunk and branches
|
||||
K 10
|
||||
svn:author
|
||||
V 4
|
||||
samv
|
||||
V 8
|
||||
tallsopp
|
||||
K 8
|
||||
svn:date
|
||||
V 27
|
||||
2009-10-20T01:33:38.159933Z
|
||||
2009-11-12T20:29:39.045856Z
|
||||
PROPS-END
|
||||
|
||||
Node-path: branches
|
||||
@ -49,8 +49,8 @@ PROPS-END
|
||||
|
||||
|
||||
Revision-number: 2
|
||||
Prop-content-length: 106
|
||||
Content-length: 106
|
||||
Prop-content-length: 110
|
||||
Content-length: 110
|
||||
|
||||
K 7
|
||||
svn:log
|
||||
@ -58,12 +58,12 @@ V 8
|
||||
ancestor
|
||||
K 10
|
||||
svn:author
|
||||
V 4
|
||||
samv
|
||||
V 8
|
||||
tallsopp
|
||||
K 8
|
||||
svn:date
|
||||
V 27
|
||||
2009-10-20T01:33:39.160059Z
|
||||
2009-11-12T20:29:40.079587Z
|
||||
PROPS-END
|
||||
|
||||
Node-path: trunk/Makefile
|
||||
@ -72,6 +72,7 @@ Node-action: add
|
||||
Prop-content-length: 10
|
||||
Text-content-length: 2401
|
||||
Text-content-md5: bfd8ff778d1492dc6758567373176a89
|
||||
Text-content-sha1: 103205ce331f7d64086dba497574734f78439590
|
||||
Content-length: 2411
|
||||
|
||||
PROPS-END
|
||||
@ -155,8 +156,8 @@ backup: clean
|
||||
|
||||
|
||||
Revision-number: 3
|
||||
Prop-content-length: 115
|
||||
Content-length: 115
|
||||
Prop-content-length: 119
|
||||
Content-length: 119
|
||||
|
||||
K 7
|
||||
svn:log
|
||||
@ -164,12 +165,12 @@ V 16
|
||||
make left branch
|
||||
K 10
|
||||
svn:author
|
||||
V 4
|
||||
samv
|
||||
V 8
|
||||
tallsopp
|
||||
K 8
|
||||
svn:date
|
||||
V 27
|
||||
2009-10-20T01:33:41.148192Z
|
||||
2009-11-12T20:29:42.084439Z
|
||||
PROPS-END
|
||||
|
||||
Node-path: branches/left
|
||||
@ -177,14 +178,6 @@ Node-kind: dir
|
||||
Node-action: add
|
||||
Node-copyfrom-rev: 1
|
||||
Node-copyfrom-path: trunk
|
||||
Prop-content-length: 34
|
||||
Content-length: 34
|
||||
|
||||
K 13
|
||||
svn:mergeinfo
|
||||
V 0
|
||||
|
||||
PROPS-END
|
||||
|
||||
|
||||
Node-path: branches/left/Makefile
|
||||
@ -193,11 +186,46 @@ Node-action: add
|
||||
Node-copyfrom-rev: 2
|
||||
Node-copyfrom-path: trunk/Makefile
|
||||
Text-copy-source-md5: bfd8ff778d1492dc6758567373176a89
|
||||
Text-copy-source-sha1: 103205ce331f7d64086dba497574734f78439590
|
||||
|
||||
|
||||
Revision-number: 4
|
||||
Prop-content-length: 112
|
||||
Content-length: 112
|
||||
Prop-content-length: 120
|
||||
Content-length: 120
|
||||
|
||||
K 7
|
||||
svn:log
|
||||
V 17
|
||||
make right branch
|
||||
K 10
|
||||
svn:author
|
||||
V 8
|
||||
tallsopp
|
||||
K 8
|
||||
svn:date
|
||||
V 27
|
||||
2009-11-12T20:29:44.065452Z
|
||||
PROPS-END
|
||||
|
||||
Node-path: branches/right
|
||||
Node-kind: dir
|
||||
Node-action: add
|
||||
Node-copyfrom-rev: 1
|
||||
Node-copyfrom-path: trunk
|
||||
|
||||
|
||||
Node-path: branches/right/Makefile
|
||||
Node-kind: file
|
||||
Node-action: add
|
||||
Node-copyfrom-rev: 2
|
||||
Node-copyfrom-path: trunk/Makefile
|
||||
Text-copy-source-md5: bfd8ff778d1492dc6758567373176a89
|
||||
Text-copy-source-sha1: 103205ce331f7d64086dba497574734f78439590
|
||||
|
||||
|
||||
Revision-number: 5
|
||||
Prop-content-length: 116
|
||||
Content-length: 116
|
||||
|
||||
K 7
|
||||
svn:log
|
||||
@ -205,12 +233,12 @@ V 13
|
||||
left update 1
|
||||
K 10
|
||||
svn:author
|
||||
V 4
|
||||
samv
|
||||
V 8
|
||||
tallsopp
|
||||
K 8
|
||||
svn:date
|
||||
V 27
|
||||
2009-10-20T01:33:42.148773Z
|
||||
2009-11-12T20:29:45.066262Z
|
||||
PROPS-END
|
||||
|
||||
Node-path: branches/left/Makefile
|
||||
@ -218,6 +246,7 @@ Node-kind: file
|
||||
Node-action: change
|
||||
Text-content-length: 2465
|
||||
Text-content-md5: 16e38d9753b061731650561ce01b1195
|
||||
Text-content-sha1: 36da4b84ea9b64218ab48171dfc5c48ae025f38b
|
||||
Content-length: 2465
|
||||
|
||||
# -DCOLLISION_CHECK if you believe that SHA1's
|
||||
@ -299,9 +328,9 @@ backup: clean
|
||||
cd .. ; tar czvf dircache.tar.gz dir-cache
|
||||
|
||||
|
||||
Revision-number: 5
|
||||
Prop-content-length: 111
|
||||
Content-length: 111
|
||||
Revision-number: 6
|
||||
Prop-content-length: 115
|
||||
Content-length: 115
|
||||
|
||||
K 7
|
||||
svn:log
|
||||
@ -309,12 +338,12 @@ V 12
|
||||
trunk update
|
||||
K 10
|
||||
svn:author
|
||||
V 4
|
||||
samv
|
||||
V 8
|
||||
tallsopp
|
||||
K 8
|
||||
svn:date
|
||||
V 27
|
||||
2009-10-20T01:33:43.159959Z
|
||||
2009-11-12T20:29:46.278498Z
|
||||
PROPS-END
|
||||
|
||||
Node-path: trunk/Makefile
|
||||
@ -322,6 +351,7 @@ Node-kind: file
|
||||
Node-action: change
|
||||
Text-content-length: 2521
|
||||
Text-content-md5: 0668418a621333f4aa8b6632cd63e2a0
|
||||
Text-content-sha1: 4f29afd038e52f45acb5ef8c41acfc70062a741a
|
||||
Content-length: 2521
|
||||
|
||||
# -DCOLLISION_CHECK if you believe that SHA1's
|
||||
@ -406,9 +436,9 @@ backup: clean
|
||||
cd .. ; tar czvf dircache.tar.gz dir-cache
|
||||
|
||||
|
||||
Revision-number: 6
|
||||
Prop-content-length: 112
|
||||
Content-length: 112
|
||||
Revision-number: 7
|
||||
Prop-content-length: 116
|
||||
Content-length: 116
|
||||
|
||||
K 7
|
||||
svn:log
|
||||
@ -416,12 +446,12 @@ V 13
|
||||
left update 2
|
||||
K 10
|
||||
svn:author
|
||||
V 4
|
||||
samv
|
||||
V 8
|
||||
tallsopp
|
||||
K 8
|
||||
svn:date
|
||||
V 27
|
||||
2009-10-20T01:33:44.164175Z
|
||||
2009-11-12T20:29:47.069090Z
|
||||
PROPS-END
|
||||
|
||||
Node-path: branches/left/Makefile
|
||||
@ -429,6 +459,7 @@ Node-kind: file
|
||||
Node-action: change
|
||||
Text-content-length: 2529
|
||||
Text-content-md5: f6b197cc3f2e89a83e545d4bb003de73
|
||||
Text-content-sha1: 2f656677cfec0bceec85e53036ffb63e25126f8e
|
||||
Content-length: 2529
|
||||
|
||||
# -DCOLLISION_CHECK if you believe that SHA1's
|
||||
@ -510,9 +541,9 @@ backup: clean
|
||||
cd .. ; tar czvf dircache.tar.gz dir-cache
|
||||
|
||||
|
||||
Revision-number: 7
|
||||
Prop-content-length: 112
|
||||
Content-length: 112
|
||||
Revision-number: 8
|
||||
Prop-content-length: 116
|
||||
Content-length: 116
|
||||
|
||||
K 7
|
||||
svn:log
|
||||
@ -520,12 +551,12 @@ V 13
|
||||
left update 3
|
||||
K 10
|
||||
svn:author
|
||||
V 4
|
||||
samv
|
||||
V 8
|
||||
tallsopp
|
||||
K 8
|
||||
svn:date
|
||||
V 27
|
||||
2009-10-20T01:33:45.144214Z
|
||||
2009-11-12T20:29:48.053835Z
|
||||
PROPS-END
|
||||
|
||||
Node-path: branches/left/Makefile
|
||||
@ -533,6 +564,7 @@ Node-kind: file
|
||||
Node-action: change
|
||||
Text-content-length: 2593
|
||||
Text-content-md5: 5ccff689fb290e00b85fe18ee50c54ba
|
||||
Text-content-sha1: a13de8e23f1483efca3e57b2b64b0ae6f740ce10
|
||||
Content-length: 2593
|
||||
|
||||
# -DCOLLISION_CHECK if you believe that SHA1's
|
||||
@ -614,22 +646,22 @@ backup: clean
|
||||
cd .. ; tar czvf dircache.tar.gz dir-cache
|
||||
|
||||
|
||||
Revision-number: 8
|
||||
Prop-content-length: 110
|
||||
Content-length: 110
|
||||
Revision-number: 9
|
||||
Prop-content-length: 116
|
||||
Content-length: 116
|
||||
|
||||
K 7
|
||||
svn:log
|
||||
V 11
|
||||
Merge trunk
|
||||
V 13
|
||||
Merge trunk 1
|
||||
K 10
|
||||
svn:author
|
||||
V 4
|
||||
samv
|
||||
V 8
|
||||
tallsopp
|
||||
K 8
|
||||
svn:date
|
||||
V 27
|
||||
2009-10-20T01:33:48.176135Z
|
||||
2009-11-12T20:29:51.098306Z
|
||||
PROPS-END
|
||||
|
||||
Node-path: trunk
|
||||
@ -641,7 +673,7 @@ Content-length: 53
|
||||
K 13
|
||||
svn:mergeinfo
|
||||
V 18
|
||||
/branches/left:2-7
|
||||
/branches/left:2-8
|
||||
PROPS-END
|
||||
|
||||
|
||||
@ -650,6 +682,7 @@ Node-kind: file
|
||||
Node-action: change
|
||||
Text-content-length: 2713
|
||||
Text-content-md5: 0afbe34f244cd662b1f97d708c687f90
|
||||
Text-content-sha1: 46d9377d783e67a9b581da110352e799517c8a14
|
||||
Content-length: 2713
|
||||
|
||||
# -DCOLLISION_CHECK if you believe that SHA1's
|
||||
@ -734,3 +767,244 @@ backup: clean
|
||||
cd .. ; tar czvf dircache.tar.gz dir-cache
|
||||
|
||||
|
||||
Revision-number: 10
|
||||
Prop-content-length: 116
|
||||
Content-length: 116
|
||||
|
||||
K 7
|
||||
svn:log
|
||||
V 13
|
||||
left update 4
|
||||
K 10
|
||||
svn:author
|
||||
V 8
|
||||
tallsopp
|
||||
K 8
|
||||
svn:date
|
||||
V 27
|
||||
2009-11-12T20:29:52.081644Z
|
||||
PROPS-END
|
||||
|
||||
Node-path: branches/left/Makefile
|
||||
Node-kind: file
|
||||
Node-action: change
|
||||
Text-content-length: 2529
|
||||
Text-content-md5: f6b197cc3f2e89a83e545d4bb003de73
|
||||
Text-content-sha1: 2f656677cfec0bceec85e53036ffb63e25126f8e
|
||||
Content-length: 2529
|
||||
|
||||
# -DCOLLISION_CHECK if you believe that SHA1's
|
||||
# 1461501637330902918203684832716283019655932542976 hashes do not give you
|
||||
# enough guarantees about no collisions between objects ever hapenning.
|
||||
#
|
||||
# -DNSEC if you want git to care about sub-second file mtimes and ctimes.
|
||||
# Note that you need some new glibc (at least >2.2.4) for this, and it will
|
||||
# BREAK YOUR LOCAL DIFFS! show-diff and anything using it will likely randomly
|
||||
# break unless your underlying filesystem supports those sub-second times
|
||||
# (my ext3 doesn't).
|
||||
CFLAGS=-g -O3 -Wall
|
||||
|
||||
CC=gcc
|
||||
|
||||
|
||||
PROG= update-cache show-diff init-db write-tree read-tree commit-tree \
|
||||
cat-file fsck-cache checkout-cache diff-tree rev-tree show-files \
|
||||
check-files ls-tree merge-base
|
||||
|
||||
all: $(PROG)
|
||||
|
||||
install: $(PROG)
|
||||
install $(PROG) $(HOME)/bin/
|
||||
|
||||
LIBS= -lssl -lz
|
||||
|
||||
init-db: init-db.o
|
||||
|
||||
update-cache: update-cache.o read-cache.o
|
||||
$(CC) $(CFLAGS) -o update-cache update-cache.o read-cache.o $(LIBS)
|
||||
|
||||
show-diff: show-diff.o read-cache.o
|
||||
$(CC) $(CFLAGS) -o show-diff show-diff.o read-cache.o $(LIBS)
|
||||
|
||||
write-tree: write-tree.o read-cache.o
|
||||
$(CC) $(CFLAGS) -o write-tree write-tree.o read-cache.o $(LIBS)
|
||||
|
||||
read-tree: read-tree.o read-cache.o
|
||||
$(CC) $(CFLAGS) -o read-tree read-tree.o read-cache.o $(LIBS)
|
||||
|
||||
commit-tree: commit-tree.o read-cache.o
|
||||
$(CC) $(CFLAGS) -o commit-tree commit-tree.o read-cache.o $(LIBS)
|
||||
|
||||
cat-file: cat-file.o read-cache.o
|
||||
$(CC) $(CFLAGS) -o cat-file cat-file.o read-cache.o $(LIBS)
|
||||
|
||||
fsck-cache: fsck-cache.o read-cache.o object.o commit.o tree.o blob.o
|
||||
$(CC) $(CFLAGS) -o fsck-cache fsck-cache.o read-cache.o object.o commit.o tree.o blob.o $(LIBS)
|
||||
|
||||
checkout-cache: checkout-cache.o read-cache.o
|
||||
$(CC) $(CFLAGS) -o checkout-cache checkout-cache.o read-cache.o $(LIBS)
|
||||
|
||||
diff-tree: diff-tree.o read-cache.o
|
||||
$(CC) $(CFLAGS) -o diff-tree diff-tree.o read-cache.o $(LIBS)
|
||||
|
||||
rev-tree: rev-tree.o read-cache.o object.o commit.o tree.o blob.o
|
||||
$(CC) $(CFLAGS) -o rev-tree rev-tree.o read-cache.o object.o commit.o tree.o blob.o $(LIBS)
|
||||
|
||||
show-files: show-files.o read-cache.o
|
||||
$(CC) $(CFLAGS) -o show-files show-files.o read-cache.o $(LIBS)
|
||||
|
||||
check-files: check-files.o read-cache.o
|
||||
$(CC) $(CFLAGS) -o check-files check-files.o read-cache.o $(LIBS)
|
||||
|
||||
ls-tree: ls-tree.o read-cache.o
|
||||
$(CC) $(CFLAGS) -o ls-tree ls-tree.o read-cache.o $(LIBS)
|
||||
|
||||
merge-base: merge-base.o read-cache.o
|
||||
$(CC) $(CFLAGS) -o merge-base merge-base.o read-cache.o $(LIBS)
|
||||
|
||||
read-cache.o: cache.h
|
||||
show-diff.o: cache.h
|
||||
|
||||
clean:
|
||||
rm -f *.o $(PROG)
|
||||
|
||||
backup: clean
|
||||
cd .. ; tar czvf dircache.tar.gz dir-cache
|
||||
|
||||
|
||||
Revision-number: 11
|
||||
Prop-content-length: 117
|
||||
Content-length: 117
|
||||
|
||||
K 7
|
||||
svn:log
|
||||
V 14
|
||||
right update 1
|
||||
K 10
|
||||
svn:author
|
||||
V 8
|
||||
tallsopp
|
||||
K 8
|
||||
svn:date
|
||||
V 27
|
||||
2009-11-12T20:29:53.059636Z
|
||||
PROPS-END
|
||||
|
||||
Node-path: branches/right/Makefile
|
||||
Node-kind: file
|
||||
Node-action: change
|
||||
Text-content-length: 2593
|
||||
Text-content-md5: 5ccff689fb290e00b85fe18ee50c54ba
|
||||
Text-content-sha1: a13de8e23f1483efca3e57b2b64b0ae6f740ce10
|
||||
Content-length: 2593
|
||||
|
||||
# -DCOLLISION_CHECK if you believe that SHA1's
|
||||
# 1461501637330902918203684832716283019655932542976 hashes do not give you
|
||||
# enough guarantees about no collisions between objects ever hapenning.
|
||||
#
|
||||
# -DNSEC if you want git to care about sub-second file mtimes and ctimes.
|
||||
# Note that you need some new glibc (at least >2.2.4) for this, and it will
|
||||
# BREAK YOUR LOCAL DIFFS! show-diff and anything using it will likely randomly
|
||||
# break unless your underlying filesystem supports those sub-second times
|
||||
# (my ext3 doesn't).
|
||||
CFLAGS=-g -O3 -Wall
|
||||
|
||||
CC=gcc
|
||||
|
||||
|
||||
PROG= update-cache show-diff init-db write-tree read-tree commit-tree \
|
||||
cat-file fsck-cache checkout-cache diff-tree rev-tree show-files \
|
||||
check-files ls-tree merge-base
|
||||
|
||||
all: $(PROG)
|
||||
|
||||
install: $(PROG)
|
||||
install $(PROG) $(HOME)/bin/
|
||||
|
||||
LIBS= -lssl -lz
|
||||
|
||||
init-db: init-db.o
|
||||
|
||||
update-cache: update-cache.o read-cache.o
|
||||
$(CC) $(CFLAGS) -o update-cache update-cache.o read-cache.o $(LIBS)
|
||||
|
||||
show-diff: show-diff.o read-cache.o
|
||||
$(CC) $(CFLAGS) -o show-diff show-diff.o read-cache.o $(LIBS)
|
||||
|
||||
write-tree: write-tree.o read-cache.o
|
||||
$(CC) $(CFLAGS) -o write-tree write-tree.o read-cache.o $(LIBS)
|
||||
|
||||
read-tree: read-tree.o read-cache.o
|
||||
$(CC) $(CFLAGS) -o read-tree read-tree.o read-cache.o $(LIBS)
|
||||
|
||||
commit-tree: commit-tree.o read-cache.o
|
||||
$(CC) $(CFLAGS) -o commit-tree commit-tree.o read-cache.o $(LIBS)
|
||||
|
||||
cat-file: cat-file.o read-cache.o
|
||||
$(CC) $(CFLAGS) -o cat-file cat-file.o read-cache.o $(LIBS)
|
||||
|
||||
fsck-cache: fsck-cache.o read-cache.o object.o commit.o tree.o blob.o
|
||||
$(CC) $(CFLAGS) -o fsck-cache fsck-cache.o read-cache.o object.o commit.o tree.o blob.o $(LIBS)
|
||||
|
||||
checkout-cache: checkout-cache.o read-cache.o
|
||||
$(CC) $(CFLAGS) -o checkout-cache checkout-cache.o read-cache.o $(LIBS)
|
||||
|
||||
diff-tree: diff-tree.o read-cache.o
|
||||
$(CC) $(CFLAGS) -o diff-tree diff-tree.o read-cache.o $(LIBS)
|
||||
|
||||
rev-tree: rev-tree.o read-cache.o object.o commit.o tree.o blob.o
|
||||
$(CC) $(CFLAGS) -o rev-tree rev-tree.o read-cache.o object.o commit.o tree.o blob.o $(LIBS)
|
||||
|
||||
show-files: show-files.o read-cache.o
|
||||
$(CC) $(CFLAGS) -o show-files show-files.o read-cache.o $(LIBS)
|
||||
|
||||
check-files: check-files.o read-cache.o
|
||||
$(CC) $(CFLAGS) -o check-files check-files.o read-cache.o $(LIBS)
|
||||
|
||||
ls-tree: ls-tree.o read-cache.o
|
||||
$(CC) $(CFLAGS) -o ls-tree ls-tree.o read-cache.o $(LIBS)
|
||||
|
||||
merge-base: merge-base.o read-cache.o object.o commit.o tree.o blob.o
|
||||
$(CC) $(CFLAGS) -o merge-base merge-base.o read-cache.o object.o commit.o tree.o blob.o $(LIBS)
|
||||
|
||||
read-cache.o: cache.h
|
||||
show-diff.o: cache.h
|
||||
|
||||
clean:
|
||||
rm -f *.o $(PROG)
|
||||
|
||||
backup: clean
|
||||
cd .. ; tar czvf dircache.tar.gz dir-cache
|
||||
|
||||
|
||||
Revision-number: 12
|
||||
Prop-content-length: 116
|
||||
Content-length: 116
|
||||
|
||||
K 7
|
||||
svn:log
|
||||
V 13
|
||||
Merge trunk 2
|
||||
K 10
|
||||
svn:author
|
||||
V 8
|
||||
tallsopp
|
||||
K 8
|
||||
svn:date
|
||||
V 27
|
||||
2009-11-12T20:29:56.083003Z
|
||||
PROPS-END
|
||||
|
||||
Node-path: trunk
|
||||
Node-kind: dir
|
||||
Node-action: change
|
||||
Prop-content-length: 54
|
||||
Content-length: 54
|
||||
|
||||
K 13
|
||||
svn:mergeinfo
|
||||
V 19
|
||||
/branches/left:2-11
|
||||
PROPS-END
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user