projects
/
git.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
svnimport: Convert executable flag
[git.git]
/
git-svnimport.perl
diff --git
a/git-svnimport.perl
b/git-svnimport.perl
index
ee2940f
..
6603b96
100755
(executable)
--- a/
git-svnimport.perl
+++ b/
git-svnimport.perl
@@
-112,16
+112,22
@@
sub file {
DIR => File::Spec->tmpdir(), UNLINK => 1);
print "... $rev $path ...\n" if $opt_v;
DIR => File::Spec->tmpdir(), UNLINK => 1);
print "... $rev $path ...\n" if $opt_v;
- my
$pool = SVN::Pool->new(
);
- eval {
$self->{'svn'}->get_file($path,$rev,$fh,$pool); };
-
$pool->clear
;
+ my
(undef, $properties
);
+ eval {
(undef, $properties)
+
= $self->{'svn'}->get_file($path,$rev,$fh); }
;
if($@) {
return undef if $@ =~ /Attempted to get checksum/;
die $@;
}
if($@) {
return undef if $@ =~ /Attempted to get checksum/;
die $@;
}
+ my $mode;
+ if (exists $properties->{'svn:executable'}) {
+ $mode = '0755';
+ } else {
+ $mode = '0644';
+ }
close ($fh);
close ($fh);
- return
$name
;
+ return
($name, $mode)
;
}
package main;
}
package main;
@@
-296,7
+302,7
@@
sub get_file($$$) {
my $svnpath = revert_split_path($branch,$path);
# now get it
my $svnpath = revert_split_path($branch,$path);
# now get it
- my
$name
;
+ my
($name,$mode)
;
if($opt_d) {
my($req,$res);
if($opt_d) {
my($req,$res);
@@
-316,8
+322,9
@@
sub get_file($$$) {
return undef if $res->code == 301; # directory?
die $res->status_line." at $url\n";
}
return undef if $res->code == 301; # directory?
die $res->status_line." at $url\n";
}
+ $mode = '0644'; # can't obtain mode via direct http request?
} else {
} else {
-
$name
= $svn->file("$svnpath",$rev);
+
($name,$mode)
= $svn->file("$svnpath",$rev);
return undef unless defined $name;
}
return undef unless defined $name;
}
@@
-331,7
+338,6
@@
sub get_file($$$) {
chomp $sha;
close $F;
unlink $name;
chomp $sha;
close $F;
unlink $name;
- my $mode = "0644"; # SV does not seem to store any file modes
return [$mode, $sha, $path];
}
return [$mode, $sha, $path];
}