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

[PATCH v4 0/2] allow git-svn fetching to work using serf

From
Kyle J. McKay <mackyle@gmail.com>
Date
Jul 18, 2013, 19:15 UTC
Message-ID
<8a6adfae744011599e410da7a46808b@f74d39fa044aa309eaea14b9f57fe79>

This patch allows git-svn to fetch successfully using the serf library when given an https?: url to fetch from.

Unfortunately some svn servers do not seem to be configured well for use with the serf library. This can cause fetching to take longer compared to the neon library or actually cause timeouts during the fetch. When timeouts occur git-svn can be safely restarted to fetch more revisions.

A new temp_is_locked function has been added to Git.pm to facilitate using the minimal number of temp files possible when using serf.

The problem that occurs when running git-svn fetch using the serf library is that the previously used temp file is not always unlocked before the next temp file needs to be used.

To work around this problem, a new temp name is used if the temp name that would otherwise be chosen is currently locked.

Versions v2-v3 of the patch introduced a bug when attempting to change the _temp_cache function to use the new temp_is_locked function at the suggestion of a reviewer.

This version reverts that as the logic in _temp_cache isn't really conducive to that change because of the tests it makes and the change was causing problems.

This is the single change that is reverted in Git.pm compared to v3 of the patch:

diff --git a/perl/Git.pm b/perl/Git.pm
index 0ba15b9..204fdc6 100644
--- a/perl/Git.pm
+++ b/perl/Git.pm
@@ -1277,7 +1277,7 @@ sub _temp_cache {
 
 	my $temp_fd = \$TEMP_FILEMAP{$name};
 	if (defined $$temp_fd and $$temp_fd->opened) {
-		if (temp_is_locked($name)) {
+		if ($TEMP_FILES{$$temp_fd}{locked}) {
 			throw Error::Simple("Temp file with moniker '" .
 				$name . "' already in use");
 		}


Other than that single change, this patch series is identical to v3,
and in particular the 0002 perl/Git/SVN/Fetcher.pm change is identical
to that of v3.

Kyle J. McKay (2):
  Git.pm: add new temp_is_locked function
  git-svn: allow git-svn fetching to work using serf

 perl/Git.pm             | 31 ++++++++++++++++++++++++++++++-
 perl/Git/SVN/Fetcher.pm |  6 ++++--
 2 files changed, 34 insertions(+), 3 deletions(-)
-- 
1.8.3
Next: Kyle J. McKay
Message 1 of 8 in “allow git-svn fetching to work using serf”
  1. 0/2 allow git-svn fetching to work using serfKyle J. McKay, Jul 18, 2013
  2. 1/2 Git.pm: add new temp_is_locked functionKyle J. McKay, Jul 18, 2013
  3. 2/2 git-svn: allow git-svn fetching to work using serfKyle J. McKay, Jul 18, 2013
  4. Jonathan NiederJul 18, 2013
  5. Kyle J. McKayJul 18, 2013
  6. Eric WongJul 18, 2013
  7. Junio C HamanoJul 18, 2013
  8. Kyle J. McKayJul 19, 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.