git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 2/2] git-svn: allow git-svn fetching to work using serf

From
Jonathan Nieder <jrnieder@gmail.com>
Date
Jul 7, 2013, 00:24 UTC
Message-ID
<20130707002430.GE30132@google.com>
In-Reply-To
<ABDE5FFA-C19F-44BF-A360-3FD5D74F2B28@gmail.com>

(cc-ing Eric Wong, who wrote this code) Hi,

Kyle McKay wrote:
Show 6 quoted lines
> Temp file with moniker 'svn_delta' already in use at Git.pm line 1250
> Temp file with moniker 'git_blob' already in use at Git.pm line 1250
>
> David Rothenberger <daveroth@acm.org> has determined the cause to
> be that ra_serf does not drive the delta editor in a depth-first
> manner [...]. Instead, the calls come in this order:
[...]
Show 15 quoted lines
> --- a/perl/Git/SVN/Fetcher.pm
> +++ b/perl/Git/SVN/Fetcher.pm
> @@ -315,11 +315,13 @@ sub change_file_prop {
> sub apply_textdelta {
> 	my ($self, $fb, $exp) = @_;
> 	return undef if $self->is_path_ignored($fb->{path});
> -	my $fh = $::_repository->temp_acquire('svn_delta');
> +	my $suffix = 0;
> +	++$suffix while $::_repository->temp_is_locked("svn_delta_${$}_$suffix");
> +	my $fh = $::_repository->temp_acquire("svn_delta_${$}_$suffix");
> 	# $fh gets auto-closed() by SVN::TxDelta::apply(),
> 	# (but $base does not,) so dup() it for reading in close_file
> 	open my $dup, '<&', $fh or croak $!;
> -	my $base = $::_repository->temp_acquire('git_blob');
> +	my $base = $::_repository->temp_acquire("git_blob_${$}_$suffix");
Thanks for your work tracking this down.

I'm a bit confused. Are you saying that apply_textdelta gets called multiple times in a row without an intervening close_file?

Puzzled, Jonathan

Previous: Kyle McKayNext: Kyle McKay
Message 2 of 8 in “git-svn: allow git-svn fetching to work using serf”
  1. 2/2 git-svn: allow git-svn fetching to work using serfKyle McKay, Jul 6, 2013
  2. Jonathan NiederJul 7, 2013
  3. Kyle McKayJul 7, 2013
  4. Jonathan NiederJul 7, 2013
  5. Kyle McKayJul 7, 2013
  6. Daniel ShahafJul 7, 2013
  7. David RothenbergerJul 7, 2013
  8. Kyle McKayJul 7, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.