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

Re: [PATCH 0/2] 'git svn info' fixes

From
EWEric Wong <normalperson@yhbt.net>
Date
Aug 30, 2008, 01:03 UTC
Message-ID
<20080830010319.GA2940@untitled>
In-Reply-To
<1220017369-32637-1-git-send-email-trast@student.ethz.ch>
Thomas Rast <trast@student.ethz.ch> wrote:
Show 32 quoted lines
> Eric Wong wrote.
> > > So should we just change all "unknown foo" tests to verify that 'git
> > > svn info' errors out too?
> >
> > Yes, I see no reason to differ from plain svn here.
> 
> This starts getting more complicated at every turn.  The included
> mini-series (probably textually depends on the other 6 patches though)
> "fixes" this.
> 
> HOWEVER: Subversion itself broke compatibility here.  In 1.4:
> 
>   $ svn info new; echo $?
>   new:  (Not a versioned resource)
> 
>   0
> 
> Note the extra linebreak and successful exit.  Current git-svn
> precisely matches this output.  In 1.5, it's different:
> 
>   $ svn info new; echo $?
>   svn: 'new' is not under version control
>   1
> 
> While it is of course up to you what you would like to do (and modulo
> test_must_fail, 2/2 can still be used to fix the tests if you decide
> to reject 1/2), I suggest changing to 1.5 behaviour.  exit(1) is the
> sane thing to do in this case, and that is already breaking
> bit-for-bit compatibility with SVN 1.4, so we might as well adopt the
> new error message.  Of course this prevents us from comparing the
> output literally in the tests, so I settled for a slightly weaker
> check: failure status and mention of the filename.

Yes. Please maintain compatibility with svn 1.5. The current version of git-svn should strive to maintain compatibility with the current version of svn whenever possible.

> Unfortunately this does raise the question whether the URL-encoding
> issue treated in the other series is in fact a similar incompatibility
> between 1.4 and 1.5, not a (minor but long-standing) bug in git-svn.
It should match svn 1.5 for "git svn info".

Since "git svn info --url" is a git-svn-only thing, whatever makes the most sense from a command-line scripting perspective (I don't have time to check against a real repo right now):

For git-svn info --url, just want things like:
	svn log -v `git svn info --url`
	svn cp `git svn info --url` \
               `git svn info --url | sed -e 's,/trunk,/tags/1.0,'`
	svn rm `git svn info --url`
to just work.

I seem to recall the rules being slightly different for http(s):// and (file://|svn://) URLs with the command-line client; but my memory may just be fuzzy...

Thanks for looking into this!
-- 
Eric Wong
Previous: Thomas RastNext: Thomas Rast
Message 15 of 17 in “'git svn info' fixes”
  1. 0/6 'git svn info' fixesThomas Rast, Aug 26, 2008
  2. 1/6 git svn info: tests: let 'init' test run with SVN 1.5Thomas Rast, Aug 26, 2008
  3. 2/6 git svn info: tests: do not use set -eThomas Rast, Aug 26, 2008
  4. 3/6 git svn info: tests: use test_cmp instead of git-diffThomas Rast, Aug 26, 2008
  5. 4/6 git svn info: tests: fix ptouch argument order in setupThomas Rast, Aug 26, 2008
  6. 5/6 git svn info: make info relative to the current directoryThomas Rast, Aug 26, 2008
  7. 6/6 git svn info: always quote URLs in 'info' outputThomas Rast, Aug 26, 2008
  8. Eric WongAug 27, 2008
  9. Eric WongAug 27, 2008
  10. Thomas RastAug 28, 2008
  11. Eric WongAug 29, 2008
  12. 0/2 *** SUBJECT HERE ***Thomas Rast, Aug 29, 2008
  13. 1/2 git-svn: match SVN 1.5 behaviour of info' on unknown itemThomas Rast, Aug 29, 2008
  14. 2/2 git-svn: fix 'info' tests for unknown itemsThomas Rast, Aug 29, 2008
  15. Eric WongAug 30, 2008
  16. Thomas RastSep 1, 2008
  17. Eric WongSep 1, 2008

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.