public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
* git svn -T svn://svn. ...
@ 2016-03-08 18:33 cyg Simple
  2016-03-09 19:46 ` Adam Dinwoodie
  0 siblings, 1 reply; 7+ messages in thread
From: cyg Simple @ 2016-03-08 18:33 UTC (permalink / raw)
  To: cygwin

Using the latest production release 2.4.1(1) the command is removing the
/ after the svn: leaving svn:/svn which isn't correct.  Using
'svn://svn' doesn't help either.

(1) CYGWIN_NT-10.0 HAL2002 2.4.1(0.293/5/3) 2016-01-24 11:26 x86_64 Cygwin

(2) $ git svn init -T 'svn://svn.code.sf.net/p/squirrelmail/code/trunk'
E: 'svn:/svn.code.sf.net/p/squirrelmail/code/trunk' is not a complete
URL  and a separate URL is not specified

(3) $ git svn init --trunk='svn://svn.code.sf.net/p/squirrelmail/code/trunk'
E: 'svn:/svn.code.sf.net/p/squirrelmail/code/trunk' is not a complete
URL  and a separate URL is not specified

strace @ https://drive.google.com/open?id=0B6c3VsMjSWW6eWZjLU1IYml6ZVk

-- 
cyg Simple


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: git svn -T svn://svn. ...
  2016-03-08 18:33 git svn -T svn://svn. cyg Simple
@ 2016-03-09 19:46 ` Adam Dinwoodie
  2016-03-09 19:57   ` Adam Dinwoodie
  2016-03-17 12:45   ` Adam Dinwoodie
  0 siblings, 2 replies; 7+ messages in thread
From: Adam Dinwoodie @ 2016-03-09 19:46 UTC (permalink / raw)
  To: cygwin

On Tue, Mar 08, 2016 at 01:32:30PM -0500, cyg Simple wrote:
> Using the latest production release 2.4.1(1) the command is removing the
> / after the svn: leaving svn:/svn which isn't correct.  Using
> 'svn://svn' doesn't help either.
> 
> (2) $ git svn init -T 'svn://svn.code.sf.net/p/squirrelmail/code/trunk'
> E: 'svn:/svn.code.sf.net/p/squirrelmail/code/trunk' is not a complete
> URL  and a separate URL is not specified

I'm seeing the same behaviour on local builds of both v2.7.0 and v2.2.0,
and when using http:// URIs as well as svn:// ones.  Very sad.

It's not immediately obvious what's going wrong here, and I don't
currently have much spare time for digging, but I'll add it to my queue
to investigate the problem / report it upstream to see if anyone else
has any cunning ideas.

Adam

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: git svn -T svn://svn. ...
  2016-03-09 19:46 ` Adam Dinwoodie
@ 2016-03-09 19:57   ` Adam Dinwoodie
  2016-03-11 15:28     ` cyg Simple
  2016-03-16 18:39     ` Adam Dinwoodie
  2016-03-17 12:45   ` Adam Dinwoodie
  1 sibling, 2 replies; 7+ messages in thread
From: Adam Dinwoodie @ 2016-03-09 19:57 UTC (permalink / raw)
  To: cygwin

On Wed, Mar 09, 2016 at 07:46:06PM +0000, Adam Dinwoodie wrote:
> On Tue, Mar 08, 2016 at 01:32:30PM -0500, cyg Simple wrote:
> > Using the latest production release 2.4.1(1) the command is removing the
> > / after the svn: leaving svn:/svn which isn't correct.  Using
> > 'svn://svn' doesn't help either.
> > 
> > (2) $ git svn init -T 'svn://svn.code.sf.net/p/squirrelmail/code/trunk'
> > E: 'svn:/svn.code.sf.net/p/squirrelmail/code/trunk' is not a complete
> > URL  and a separate URL is not specified
> 
> I'm seeing the same behaviour on local builds of both v2.7.0 and v2.2.0,
> and when using http:// URIs as well as svn:// ones.  Very sad.
> 
> It's not immediately obvious what's going wrong here, and I don't
> currently have much spare time for digging, but I'll add it to my queue
> to investigate the problem / report it upstream to see if anyone else
> has any cunning ideas.

I've found a work-around.  I'm surprised it works, but it evidently
does, so...

If you do the `git svn init` without the `-T` argument, then set up the
branches to fetch explicitly using `git config`, everything seems to
work fine:

    $ git svn init svn://svn.code.sf.net/p/squirrelmail/code
    Initialized empty Git repository in /home/add/tmp/.git/

    $ git config svn-remote.svn.fetch trunk:refs/remotes/origin/trunk

    $ git svn fetch
    r1 = 12dc820c417dc5f12723307a3fcfa4629ea972fb (refs/remotes/origin/trunk)
            A       squirrelmail/ATHORS
            A       squirrelmail/login.php3
            A       squirrelmail/signout.php3
    ...

HTH

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: git svn -T svn://svn. ...
  2016-03-09 19:57   ` Adam Dinwoodie
@ 2016-03-11 15:28     ` cyg Simple
  2016-03-16 18:39     ` Adam Dinwoodie
  1 sibling, 0 replies; 7+ messages in thread
From: cyg Simple @ 2016-03-11 15:28 UTC (permalink / raw)
  To: cygwin

On 3/9/2016 2:56 PM, Adam Dinwoodie wrote:
> On Wed, Mar 09, 2016 at 07:46:06PM +0000, Adam Dinwoodie wrote:
>> On Tue, Mar 08, 2016 at 01:32:30PM -0500, cyg Simple wrote:
>>> Using the latest production release 2.4.1(1) the command is removing the
>>> / after the svn: leaving svn:/svn which isn't correct.  Using
>>> 'svn://svn' doesn't help either.
>>>
>>> (2) $ git svn init -T 'svn://svn.code.sf.net/p/squirrelmail/code/trunk'
>>> E: 'svn:/svn.code.sf.net/p/squirrelmail/code/trunk' is not a complete
>>> URL  and a separate URL is not specified
>>
>> I'm seeing the same behaviour on local builds of both v2.7.0 and v2.2.0,
>> and when using http:// URIs as well as svn:// ones.  Very sad.
>>
>> It's not immediately obvious what's going wrong here, and I don't
>> currently have much spare time for digging, but I'll add it to my queue
>> to investigate the problem / report it upstream to see if anyone else
>> has any cunning ideas.
> 
> I've found a work-around.  I'm surprised it works, but it evidently
> does, so...
> 
> If you do the `git svn init` without the `-T` argument, then set up the
> branches to fetch explicitly using `git config`, everything seems to
> work fine:
> 
>     $ git svn init svn://svn.code.sf.net/p/squirrelmail/code
>     Initialized empty Git repository in /home/add/tmp/.git/
> 
>     $ git config svn-remote.svn.fetch trunk:refs/remotes/origin/trunk
> 
>     $ git svn fetch
>     r1 = 12dc820c417dc5f12723307a3fcfa4629ea972fb (refs/remotes/origin/trunk)
>             A       squirrelmail/ATHORS
>             A       squirrelmail/login.php3
>             A       squirrelmail/signout.php3
>     ...
> 
> HTH
> 

Thanks - my workaround involved a turtle. :D  I'll mark this mail to
remember it for a future try if the problem isn't resolved by then.

The issue seems to be in the git-svn module and not an issue of Cygwin
or git itself.  Maybe some magic with the double // in trying to be
copacetic in a Windows environment.

-- 
cyg Simple

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: git svn -T svn://svn. ...
  2016-03-09 19:57   ` Adam Dinwoodie
  2016-03-11 15:28     ` cyg Simple
@ 2016-03-16 18:39     ` Adam Dinwoodie
  2016-03-18 14:53       ` cyg Simple
  1 sibling, 1 reply; 7+ messages in thread
From: Adam Dinwoodie @ 2016-03-16 18:39 UTC (permalink / raw)
  To: cygwin

On Wed, Mar 09, 2016 at 07:56:36PM +0000, Adam Dinwoodie wrote:
> On Wed, Mar 09, 2016 at 07:46:06PM +0000, Adam Dinwoodie wrote:
> > On Tue, Mar 08, 2016 at 01:32:30PM -0500, cyg Simple wrote:
> > > Using the latest production release 2.4.1(1) the command is removing the
> > > / after the svn: leaving svn:/svn which isn't correct.  Using
> > > 'svn://svn' doesn't help either.
> > > 
> > > (2) $ git svn init -T 'svn://svn.code.sf.net/p/squirrelmail/code/trunk'
> > > E: 'svn:/svn.code.sf.net/p/squirrelmail/code/trunk' is not a complete
> > > URL  and a separate URL is not specified
> > 
> > I'm seeing the same behaviour on local builds of both v2.7.0 and v2.2.0,
> > and when using http:// URIs as well as svn:// ones.  Very sad.
> > 
> > It's not immediately obvious what's going wrong here, and I don't
> > currently have much spare time for digging, but I'll add it to my queue
> > to investigate the problem / report it upstream to see if anyone else
> > has any cunning ideas.
> 
> I've found a work-around.  I'm surprised it works, but it evidently
> does, so...
> 
> If you do the `git svn init` without the `-T` argument, then set up the
> branches to fetch explicitly using `git config`, everything seems to
> work fine:
> 
>     $ git svn init svn://svn.code.sf.net/p/squirrelmail/code
>     Initialized empty Git repository in /home/add/tmp/.git/
> 
>     $ git config svn-remote.svn.fetch trunk:refs/remotes/origin/trunk
> 
>     $ git svn fetch
>     r1 = 12dc820c417dc5f12723307a3fcfa4629ea972fb (refs/remotes/origin/trunk)
>             A       squirrelmail/ATHORS
>             A       squirrelmail/login.php3
>             A       squirrelmail/signout.php3
>     ...

A better work-around: don't specify the full URL in the -T argument:

    git svn init svn://svn.code.sf.net/p/squirrelmail/code -T trunk

The underlying bug here is that Git treats anything passed in a -T
argument as if it were a directory, and attempts to "canonicalize" it,
which includes squashing consecutive "/"s.

That doesn't match the Git SVN man page, which states "The Subversion
URL may be specified as ...  full URL arguments to -T/-t/-b" and "[The
-T flag] can point to a relative repository path ... or a full url", but
it looks like all the test scripts in Git only handle relative paths in
the -T argument.

Specifying the URL as a positional argument, and just the directory name
in the -T argument is what all the Git test scripts do, which is
presumably why this has never previously been spotted.

I'm in the process of writing this up to submit upstream.

As much for my own benefit: the reason I don't see this bug on my CentOS
box is that it has Subversion 1.6; the canonicalization function in
Subversion 1.6 (and earlier?) is different and doesn't cause this bug to
manifest.

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: git svn -T svn://svn. ...
  2016-03-09 19:46 ` Adam Dinwoodie
  2016-03-09 19:57   ` Adam Dinwoodie
@ 2016-03-17 12:45   ` Adam Dinwoodie
  1 sibling, 0 replies; 7+ messages in thread
From: Adam Dinwoodie @ 2016-03-17 12:45 UTC (permalink / raw)
  To: cygwin

On Wed, Mar 09, 2016 at 07:46:06PM +0000, Adam Dinwoodie wrote:
> On Tue, Mar 08, 2016 at 01:32:30PM -0500, cyg Simple wrote:
> > Using the latest production release 2.4.1(1) the command is removing the
> > / after the svn: leaving svn:/svn which isn't correct.  Using
> > 'svn://svn' doesn't help either.
> > 
> > (2) $ git svn init -T 'svn://svn.code.sf.net/p/squirrelmail/code/trunk'
> > E: 'svn:/svn.code.sf.net/p/squirrelmail/code/trunk' is not a complete
> > URL  and a separate URL is not specified
> 
> I'm seeing the same behaviour on local builds of both v2.7.0 and v2.2.0,
> and when using http:// URIs as well as svn:// ones.  Very sad.
> 
> It's not immediately obvious what's going wrong here, and I don't
> currently have much spare time for digging, but I'll add it to my queue
> to investigate the problem / report it upstream to see if anyone else
> has any cunning ideas.

This has now been fixed upstream; the fix should be available from
v2.8.0.

Adam

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: git svn -T svn://svn. ...
  2016-03-16 18:39     ` Adam Dinwoodie
@ 2016-03-18 14:53       ` cyg Simple
  0 siblings, 0 replies; 7+ messages in thread
From: cyg Simple @ 2016-03-18 14:53 UTC (permalink / raw)
  To: cygwin

On 3/16/2016 2:39 PM, Adam Dinwoodie wrote:
> On Wed, Mar 09, 2016 at 07:56:36PM +0000, Adam Dinwoodie wrote:
>> On Wed, Mar 09, 2016 at 07:46:06PM +0000, Adam Dinwoodie wrote:
>>> On Tue, Mar 08, 2016 at 01:32:30PM -0500, cyg Simple wrote:
>>>> Using the latest production release 2.4.1(1) the command is removing the
>>>> / after the svn: leaving svn:/svn which isn't correct.  Using
>>>> 'svn://svn' doesn't help either.
>>>>
>>>> (2) $ git svn init -T 'svn://svn.code.sf.net/p/squirrelmail/code/trunk'
>>>> E: 'svn:/svn.code.sf.net/p/squirrelmail/code/trunk' is not a complete
>>>> URL  and a separate URL is not specified
>>>
>>> I'm seeing the same behaviour on local builds of both v2.7.0 and v2.2.0,
>>> and when using http:// URIs as well as svn:// ones.  Very sad.
>>>
>>> It's not immediately obvious what's going wrong here, and I don't
>>> currently have much spare time for digging, but I'll add it to my queue
>>> to investigate the problem / report it upstream to see if anyone else
>>> has any cunning ideas.
>>
>> I've found a work-around.  I'm surprised it works, but it evidently
>> does, so...
>>
>> If you do the `git svn init` without the `-T` argument, then set up the
>> branches to fetch explicitly using `git config`, everything seems to
>> work fine:
>>
>>     $ git svn init svn://svn.code.sf.net/p/squirrelmail/code
>>     Initialized empty Git repository in /home/add/tmp/.git/
>>
>>     $ git config svn-remote.svn.fetch trunk:refs/remotes/origin/trunk
>>
>>     $ git svn fetch
>>     r1 = 12dc820c417dc5f12723307a3fcfa4629ea972fb (refs/remotes/origin/trunk)
>>             A       squirrelmail/ATHORS
>>             A       squirrelmail/login.php3
>>             A       squirrelmail/signout.php3
>>     ...
> 
> A better work-around: don't specify the full URL in the -T argument:
> 
>     git svn init svn://svn.code.sf.net/p/squirrelmail/code -T trunk
> 
> The underlying bug here is that Git treats anything passed in a -T
> argument as if it were a directory, and attempts to "canonicalize" it,
> which includes squashing consecutive "/"s.
> 
> That doesn't match the Git SVN man page, which states "The Subversion
> URL may be specified as ...  full URL arguments to -T/-t/-b" and "[The
> -T flag] can point to a relative repository path ... or a full url", but
> it looks like all the test scripts in Git only handle relative paths in
> the -T argument.
> 
> Specifying the URL as a positional argument, and just the directory name
> in the -T argument is what all the Git test scripts do, which is
> presumably why this has never previously been spotted.
> 
> I'm in the process of writing this up to submit upstream.
> 
> As much for my own benefit: the reason I don't see this bug on my CentOS
> box is that it has Subversion 1.6; the canonicalization function in
> Subversion 1.6 (and earlier?) is different and doesn't cause this bug to
> manifest.

Thanks for the work on this and the upstream fixes.

-- 
cyg Simple

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2016-03-18 14:53 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-03-08 18:33 git svn -T svn://svn. cyg Simple
2016-03-09 19:46 ` Adam Dinwoodie
2016-03-09 19:57   ` Adam Dinwoodie
2016-03-11 15:28     ` cyg Simple
2016-03-16 18:39     ` Adam Dinwoodie
2016-03-18 14:53       ` cyg Simple
2016-03-17 12:45   ` Adam Dinwoodie

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).