mirror of
https://github.com/git/git.git
synced 2026-03-29 11:00:07 +02:00
Merge branch 'master' into next
* master: git-svn: mangle refnames forbidden in git git-svn: Remove unused use of File::Temp git-svn documentation: minor grammar fix git svn: avoid uninitialized var in 'reset'
This commit is contained in:
@@ -243,7 +243,7 @@ where <name> is the name of the SVN repository as specified by the -R option to
|
||||
|
||||
--username;;
|
||||
Specify the SVN username to perform the commit as. This option overrides
|
||||
configuration property 'username'.
|
||||
the 'username' configuration property.
|
||||
|
||||
--commit-url;;
|
||||
Use the specified URL to connect to the destination Subversion
|
||||
|
||||
11
git-svn.perl
11
git-svn.perl
@@ -1185,6 +1185,7 @@ sub cmd_reset {
|
||||
"history\n";
|
||||
}
|
||||
my ($r, $c) = $gs->find_rev_before($target, not $_fetch_parent);
|
||||
die "Cannot find SVN revision $target\n" unless defined($c);
|
||||
$gs->rev_map_set($r, $c, 'reset', $uuid);
|
||||
print "r$r = $c ($gs->{ref_id})\n";
|
||||
}
|
||||
@@ -2086,6 +2087,14 @@ sub refname {
|
||||
# .. becomes %2E%2E
|
||||
$refname =~ s{\.\.}{%2E%2E}g;
|
||||
|
||||
# trailing dots and .lock are not allowed
|
||||
# .$ becomes %2E and .lock becomes %2Elock
|
||||
$refname =~ s{\.(?=$|lock$)}{%2E};
|
||||
|
||||
# the sequence @{ is used to access the reflog
|
||||
# @{ becomes %40{
|
||||
$refname =~ s{\@\{}{%40\{}g;
|
||||
|
||||
return $refname;
|
||||
}
|
||||
|
||||
@@ -3605,6 +3614,7 @@ sub mkfile {
|
||||
|
||||
sub rev_map_set {
|
||||
my ($self, $rev, $commit, $update_ref, $uuid) = @_;
|
||||
defined $commit or die "missing arg3\n";
|
||||
length $commit == 40 or die "arg3 must be a full SHA1 hexsum\n";
|
||||
my $db = $self->map_path($uuid);
|
||||
my $db_lock = "$db.lock";
|
||||
@@ -3998,7 +4008,6 @@ use vars qw/@ISA/;
|
||||
use strict;
|
||||
use warnings;
|
||||
use Carp qw/croak/;
|
||||
use File::Temp qw/tempfile/;
|
||||
use IO::File qw//;
|
||||
use vars qw/$_ignore_regex/;
|
||||
|
||||
|
||||
@@ -21,6 +21,14 @@ test_expect_success 'setup svnrepo' '
|
||||
"$svnrepo/pr ject/branches/more fun plugin!" &&
|
||||
svn_cmd cp -m "scary" "$svnrepo/pr ject/branches/fun plugin" \
|
||||
"$svnrepo/pr ject/branches/$scary_uri" &&
|
||||
svn_cmd cp -m "leading dot" "$svnrepo/pr ject/trunk" \
|
||||
"$svnrepo/pr ject/branches/.leading_dot" &&
|
||||
svn_cmd cp -m "trailing dot" "$svnrepo/pr ject/trunk" \
|
||||
"$svnrepo/pr ject/branches/trailing_dot." &&
|
||||
svn_cmd cp -m "trailing .lock" "$svnrepo/pr ject/trunk" \
|
||||
"$svnrepo/pr ject/branches/trailing_dotlock.lock" &&
|
||||
svn_cmd cp -m "reflog" "$svnrepo/pr ject/trunk" \
|
||||
"$svnrepo/pr ject/branches/not-a@{0}reflog" &&
|
||||
start_httpd
|
||||
'
|
||||
|
||||
@@ -30,6 +38,10 @@ test_expect_success 'test clone with funky branch names' '
|
||||
git rev-parse "refs/remotes/fun%20plugin" &&
|
||||
git rev-parse "refs/remotes/more%20fun%20plugin!" &&
|
||||
git rev-parse "refs/remotes/$scary_ref" &&
|
||||
git rev-parse "refs/remotes/%2Eleading_dot" &&
|
||||
git rev-parse "refs/remotes/trailing_dot%2E" &&
|
||||
git rev-parse "refs/remotes/trailing_dotlock%2Elock" &&
|
||||
git rev-parse "refs/remotes/not-a%40{0}reflog" &&
|
||||
cd ..
|
||||
'
|
||||
|
||||
@@ -51,6 +63,15 @@ test_expect_success 'test dcommit to scary branch' '
|
||||
cd ..
|
||||
'
|
||||
|
||||
test_expect_success 'test dcommit to trailing_dotlock branch' '
|
||||
cd project &&
|
||||
git reset --hard "refs/remotes/trailing_dotlock%2Elock" &&
|
||||
echo who names branches like this anyway? >> foo &&
|
||||
git commit -m "bar" -- foo &&
|
||||
git svn dcommit &&
|
||||
cd ..
|
||||
'
|
||||
|
||||
stop_httpd
|
||||
|
||||
test_done
|
||||
|
||||
Reference in New Issue
Block a user