* maint:
  git-svn: make rebuild respect rewriteRoot option
  Workaround for AIX mkstemp()
This commit is contained in:
Junio C Hamano 2008-06-23 17:52:02 -07:00
Родитель f2ab7f82b7 74b1e12357
Коммит 6b516d984b
3 изменённых файлов: 36 добавлений и 3 удалений

Просмотреть файл

@ -2577,8 +2577,8 @@ sub rebuild {
my ($log, $ctx) =
command_output_pipe(qw/rev-list --pretty=raw --no-color --reverse/,
$self->refname, '--');
my $full_url = $self->full_url;
remove_username($full_url);
my $metadata_url = $self->metadata_url;
remove_username($metadata_url);
my $svn_uuid = $self->ra_uuid;
my $c;
while (<$log>) {
@ -2596,7 +2596,7 @@ sub rebuild {
# if we merged or otherwise started elsewhere, this is
# how we break out of it
if (($uuid ne $svn_uuid) ||
($full_url && $url && ($url ne $full_url))) {
($metadata_url && $url && ($url ne $metadata_url))) {
next;
}

Просмотреть файл

@ -2118,6 +2118,7 @@ static int create_tmpfile(char *buffer, size_t bufsiz, const char *filename)
fd = mkstemp(buffer);
if (fd < 0 && dirlen) {
/* Make sure the directory exists */
memcpy(buffer, filename, dirlen);
buffer[dirlen-1] = 0;
if (mkdir(buffer, 0777) || adjust_shared_perm(buffer))
return -1;

Просмотреть файл

@ -0,0 +1,32 @@
#!/bin/sh
#
# Copyright (c) 2008 Jan Krüger
#
test_description='git-svn respects rewriteRoot during rebuild'
. ./lib-git-svn.sh
mkdir import
cd import
touch foo
svn import -m 'import for git-svn' . "$svnrepo" >/dev/null
cd ..
rm -rf import
test_expect_success 'init, fetch and checkout repository' '
git svn init --rewrite-root=http://invalid.invalid/ "$svnrepo" &&
git svn fetch
git checkout -b mybranch remotes/git-svn
'
test_expect_success 'remove rev_map' '
rm "$GIT_SVN_DIR"/.rev_map.*
'
test_expect_success 'rebuild rev_map' '
git svn rebase >/dev/null
'
test_done