summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Rast <trast@student.ethz.ch>2008-08-26 19:32:36 (GMT)
committerEric Wong <normalperson@yhbt.net>2008-09-05 23:58:39 (GMT)
commitedde9112abd1ef5f4565468e8a9a500e0c03f900 (patch)
tree556900f1364a736b3876f80167fa1bd5506e3724
parent8d5100c7a81e7f638241b5af957e05216cd56579 (diff)
downloadgit-edde9112abd1ef5f4565468e8a9a500e0c03f900.zip
git-edde9112abd1ef5f4565468e8a9a500e0c03f900.tar.gz
git-edde9112abd1ef5f4565468e8a9a500e0c03f900.tar.bz2
git svn info: make info relative to the current directory
Previously 'git svn info <path>' would always treat the <path> as relative to the working directory root, with a default of ".". This does not match the behaviour of 'svn info'. Prepend $(git rev-parse --show-prefix) to the path used inside cmd_info to make it relative to the current working directory. Signed-off-by: Thomas Rast <trast@student.ethz.ch> Acked-by: Eric Wong <normalperson@yhbt.net>
-rwxr-xr-xgit-svn.perl5
-rwxr-xr-xt/t9119-git-svn-info.sh14
2 files changed, 16 insertions, 3 deletions
diff --git a/git-svn.perl b/git-svn.perl
index 484b4ab..5e61dd9 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -805,6 +805,7 @@ sub cmd_commit_diff {
sub cmd_info {
my $path = canonicalize_path(defined($_[0]) ? $_[0] : ".");
+ my $fullpath = canonicalize_path($cmd_dir_prefix . $path);
if (exists $_[1]) {
die "Too many arguments specified\n";
}
@@ -825,7 +826,7 @@ sub cmd_info {
# canonicalize_path() will return "" to make libsvn 1.5.x happy,
$path = "." if $path eq "";
- my $full_url = $url . ($path eq "." ? "" : "/$path");
+ my $full_url = $url . ($fullpath eq "" ? "" : "/$fullpath");
if ($_url) {
print $full_url, "\n";
@@ -861,7 +862,7 @@ sub cmd_info {
}
my ($lc_author, $lc_rev, $lc_date_utc);
- my @args = Git::SVN::Log::git_svn_log_cmd($rev, $rev, "--", $path);
+ my @args = Git::SVN::Log::git_svn_log_cmd($rev, $rev, "--", $fullpath);
my $log = command_output_pipe(@args);
my $esc_color = qr/(?:\033\[(?:(?:\d+;)*\d*)?m)*/;
while (<$log>) {
diff --git a/t/t9119-git-svn-info.sh b/t/t9119-git-svn-info.sh
index 821507d..8709bcc 100755
--- a/t/t9119-git-svn-info.sh
+++ b/t/t9119-git-svn-info.sh
@@ -45,12 +45,18 @@ test_expect_success 'setup repository and import' '
ln -s directory symlink-directory &&
svn import -m "initial" . "$svnrepo" &&
cd .. &&
+ svn co "$svnrepo" svnwc &&
+ cd svnwc &&
+ echo foo > foo &&
+ svn add foo &&
+ svn commit -m "change outside directory" &&
+ svn update &&
+ cd .. &&
mkdir gitwc &&
cd gitwc &&
git-svn init "$svnrepo" &&
git-svn fetch &&
cd .. &&
- svn co "$svnrepo" svnwc &&
ptouch gitwc/file svnwc/file &&
ptouch gitwc/directory svnwc/directory &&
ptouch gitwc/symlink-file svnwc/symlink-file &&
@@ -93,6 +99,12 @@ test_expect_success 'info directory' "
test_cmp expected.info-directory actual.info-directory
"
+test_expect_success 'info inside directory' "
+ (cd svnwc/directory; svn info) > expected.info-inside-directory &&
+ (cd gitwc/directory; git-svn info) > actual.info-inside-directory &&
+ test_cmp expected.info-inside-directory actual.info-inside-directory
+ "
+
test_expect_success 'info --url directory' '
test "$(cd gitwc; git-svn info --url directory)" = "$svnrepo/directory"
'