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

[PATCH] git-svn: warn instead of dying when commit data is missing

From
EWEric Wong <e@80x24.org>
Date
Jul 2, 2016, 10:33 UTC
Message-ID
<20160702103317.GA6120@dcvr.yhbt.net>
In-Reply-To
<CAP8UFD0+vG3i26=w7WqjYcpOLj+V6X35_W6DAiMmTpiC2kxRWA@mail.gmail.com>
Christian Couder <christian.couder@gmail.com> wrote:
Show 17 quoted lines
> On Fri, Jun 24, 2016 at 10:06 PM, Eric Wong <e@80x24.org> wrote:
> > Jacob Godserv <jacobgodserv@gmail.com> wrote:
> >> > Christian (Cc-ed) also noticed the problem a few weeks ago
> >> > and took a more drastic approach by having git-svn die
> >> > instead of warning:
> >> > http://mid.gmane.org/1462604323-18545-1-git-send-email-chriscool@tuxfamily.org
> >> > which landed as commit 523a33ca17c76bee007d7394fb3930266c577c02
> >> > in git.git: https://bogomips.org/mirrors/git.git/patch?id=523a33ca17c7
> >> >
> >> > Is dying here too drastic and maybe warn is preferable?
> >>
> >> In my opinion this is too drastic. It keeps me from storing
> >> git-specific data on a git-svn mirror.
> >
> > I tend to agree, but will wait to see what Christian thinks.
> 
> Yeah a warning is probably enough.
OK, patch below.
> Another possibility would be to default to an error that tells people
> about a configuration variable that could let them decide depending on
> their workflow if this should be an error, a warning or just be
> ignored.

I think that's too much. I'm not a fan of having too many configuration variables to throw on users.

------8<------
Subject: [PATCH] git-svn: warn instead of dying when commit data is missing

It is possible to have refs globbed by git-svn which stores data purely in git; gently skip those instead of dying and assuming user error.

ref: http://mid.gmane.org/CALi1mtdtNF_GtzyPTbfb7N51wwxsFY7zm8hsgwxr3tHcZZboyg@mail.gmail.com
Suggested-by: Jacob Godserv <jacobgodserv@gmail.com>
Cc: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Eric Wong <e@80x24.org>
---
 perl/Git/SVN.pm | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/perl/Git/SVN.pm b/perl/Git/SVN.pm
index bee1e7d..018beb8 100644
--- a/perl/Git/SVN.pm
+++ b/perl/Git/SVN.pm
@@ -97,8 +97,12 @@ sub resolve_local_globs {
 				    "existing: $existing\n",
 				    " globbed: $refname\n";
 			}
-			my $u = (::cmt_metadata("$refname"))[0] or die
-			    "$refname: no associated commit metadata\n";
+			my $u = (::cmt_metadata("$refname"))[0];
+			if (!defined($u)) {
+				warn
+"W: $refname: no associated commit metadata from SVN, skipping\n";
+				next;
+			}
 			$u =~ s!^\Q$url\E(/|$)!! or die
 			  "$refname: '$url' not found in '$u'\n";
 			if ($pathname ne $u) {
-- 
EW
Previous: Christian Couder
Message 6 of 6 in “git-svn aborts with "Use of uninitialized value $u" when a non-svn-backed branch is present in remote”
  1. Jacob GodservSep 22, 2015
  2. Jacob GodservJun 24, 2016
  3. Eric WongJun 24, 2016
  4. Eric WongJun 24, 2016
  5. Christian CouderJun 25, 2016
  6. git-svn: warn instead of dying when commit data is missingEric Wong, Jul 2, 2016

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.