From: Junio C Hamano Date: Thu, 27 Aug 2026 17:42:11 GMT Subject: Re: [PATCH 1/2] git-svn: don't print v1-layout migration noise when there's nothing to migrate Message-ID: In-Reply-To: <20260827165134.848207-2-wesleys@opperschaap.net> Wesley Schwengle writes: > - print STDERR "Migrating from a git-svn v1 layout...\n"; > - mkpath([$svn_dir]); > - print STDERR "Data from a previous version of git-svn exists, but\n\t", > - "$svn_dir\n\t(required for this version ", > - "($::VERSION) of git-svn) does not exist.\n"; > my ($fh, $ctx) = command_output_pipe(qw/rev-parse --symbolic --all/); > while (<$fh>) { > my $x = $_; > next unless $x =~ s#^refs/remotes/##; > chomp $x; > my $info_url = command_oneline(qw(rev-parse --git-path), > "$x/info/url"); > next unless -f $info_url; > my $u = eval { ::file_to_s($info_url) }; > next unless $u; > + unless ($migrated) { > + print STDERR "Migrating from a git-svn v1 layout...\n"; > + mkpath([$svn_dir]); > + print STDERR "Data from a previous version of ", > + "git-svnexists, but\n\t", > + "$svn_dir\n\t(required for this version ", > + "($::VERSION) of git-svn) does not ", > + "exist.\n"; > + } Delaying the initialization and messaging is a reasonable idea, but you lost a SP in the message (there might be other changes I failed to spot---I wasn't especially being careful). > my $dn = dirname("$svn_dir/$x"); > mkpath([$dn]) unless -d $dn; > if ($x eq 'svn') { # they used 'svn' as GIT_SVN_ID: > mkpath(["$svn_dir/svn"]); > print STDERR " - $git_dir/$x/info => ", > "$svn_dir/$x/info\n"; > rename "$git_dir/$x/info", "$svn_dir/$x/info" or > croak "$!: $x"; > # don't worry too much about these, they probably > # don't exist with repos this old (save for index, > @@ -120,21 +124,21 @@ sub migrate_from_v1 { > foreach my $f (qw/unhandled.log index .rev_db/) { > rename "$git_dir/$x/$f", "$svn_dir/$x/$f"; > } > } else { > print STDERR " - $git_dir/$x => $svn_dir/$x\n"; > rename "$git_dir/$x", "$svn_dir/$x" or croak "$!: $x"; > } > $migrated++; > } > command_close_pipe($fh, $ctx); > - print STDERR "Done migrating from a git-svn v1 layout\n"; > + print STDERR "Done migrating from a git-svn v1 layout\n" if $migrated; > $migrated; > } > > sub read_old_urls { > my ($l_map, $pfx, $path) = @_; > my @dir; > foreach (<$path/*>) { > if (-r "$_/info/url") { > $pfx .= '/' if $pfx && $pfx !~ m!/$!; > my $ref_id = $pfx . basename $_; > diff --git a/t/t9107-git-svn-migrate.sh b/t/t9107-git-svn-migrate.sh > index 6d7d2aa491..a27f7f6171 100755 > --- a/t/t9107-git-svn-migrate.sh > +++ b/t/t9107-git-svn-migrate.sh > @@ -1,15 +1,22 @@ > #!/bin/sh > # Copyright (c) 2006 Eric Wong > test_description='git svn metadata migrations from previous versions' > . ./lib-git-svn.sh > > +test_expect_success 'migrate is silent when there is nothing to migrate' ' > + git svn migrate 2>err.log && > + test_grep ! "Migrating from a git-svn v1 layout" err.log && > + test_grep ! "Data from a previous version of git-svn exists" err.log && > + ! test -d "$GIT_DIR"/svn > + ' > + > test_expect_success 'setup old-looking metadata' ' > cp "$GIT_DIR"/config "$GIT_DIR"/config-old-git-svn && > mkdir import && > ( > cd import && > for i in trunk branches/a branches/b tags/0.1 tags/0.2 tags/0.3 > do > mkdir -p $i && > echo hello >>$i/README || > exit 1