threads / discuss / 8969

git-svn+cygwin failed fetch

Subject: git-svn+cygwin failed fetch

## tl;dr

6 messages between Jul 10, 2007 and Jul 12, 2007.

replies: 5people: 2as markdown or json

Russ Dill· Jul 10, 2007, 18:06 UTC · lore

[...]/src $ mkdir foo [...]/src $ cd foo [...]/src/foo $ git-svn init -t tags -b branches -T trunk https://www.[...].com/svn/foo/bar/bla Initialized empty Git repository in .git/ Using higher level of URL: https://www.[...].com/svn/foo/bar/bla => https://www.[...].com/svn/foo

[...]/src/foo $ git-svn fetch config --get svn-remote.svn.url: command returned error: 1

[...]/src/foo $ git config --get svn-remote.svn.url https://www.[...].com/svn/foo

[...]/src/foo $ cat .git/config
[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[svn-remote "svn"]
        url =  https://www.[...].com/svn/foo
        fetch = bar/bla/trunk:refs/remotes/trunk
        branches = bar/bla/branches/*:refs/remotes/*
        tags = bar/bla/tags/*:refs/remotes/tags/*

[...]/src/foo $ git --version git version 1.5.2.2

[...]/src/foo $ git-svn --version git-svn version 1.5.2.2 (svn 1.4.3)

My versions of git and svn are the one that comes with cygwin.
Eric Wong· Jul 11, 2007, 09:06 UTC · re: Russ Dill · lore

Re: git-svn+cygwin failed fetch

Russ Dill <russ.dill@gmail.com> wrote:
Show 13 quoted lines
> [...]/src $ mkdir foo
> [...]/src $ cd foo
> [...]/src/foo $ git-svn init -t tags -b branches -T trunk
> https://www.[...].com/svn/foo/bar/bla
> Initialized empty Git repository in .git/
> Using higher level of URL: https://www.[...].com/svn/foo/bar/bla =>
> https://www.[...].com/svn/foo
> 
> [...]/src/foo $ git-svn fetch
> config --get svn-remote.svn.url: command returned error: 1
> 
> [...]/src/foo $ git config --get svn-remote.svn.url
> https://www.[...].com/svn/foo

Sorry, I can't help here other than recommending a real UNIX with fork + pipe + exec and all that fun stuff.

git-svn relies heavily[1] on both input and output pipes of the safer-but-made-for-UNIX fork + pipe + exec(@list) variety, so I suspect this is just the tip of the iceberg for Windows incompatibilies with git-svn...

Maybe somebody can finally libify git? :)
[1] - probably more so than anything else in git
-- 
Eric Wong
Russ Dill· Jul 11, 2007, 09:54 UTC · re: Eric Wong · lore

Re: git-svn+cygwin failed fetch

On 7/11/07, Eric Wong <normalperson@yhbt.net> wrote:
Show 22 quoted lines
> Russ Dill <russ.dill@gmail.com> wrote:
> > [...]/src $ mkdir foo
> > [...]/src $ cd foo
> > [...]/src/foo $ git-svn init -t tags -b branches -T trunk
> > https://www.[...].com/svn/foo/bar/bla
> > Initialized empty Git repository in .git/
> > Using higher level of URL: https://www.[...].com/svn/foo/bar/bla =>
> > https://www.[...].com/svn/foo
> >
> > [...]/src/foo $ git-svn fetch
> > config --get svn-remote.svn.url: command returned error: 1
> >
> > [...]/src/foo $ git config --get svn-remote.svn.url
> > https://www.[...].com/svn/foo
>
> Sorry, I can't help here other than recommending a real UNIX with
> fork + pipe + exec and all that fun stuff.
>
> git-svn relies heavily[1] on both input and output pipes of the
> safer-but-made-for-UNIX fork + pipe + exec(@list) variety, so I suspect
> this is just the tip of the iceberg for Windows incompatibilies with
> git-svn...

Its actually reading and writing quite a bit of stuff from the config file, so why this one simple command would fail eludes me. Especially since it wrote it there in the first place. If I comment out the command_oneline and hardcode the value I know it should return, git-fetch runs. Its actually been running for several hours now.

Eric Wong· Jul 12, 2007, 05:48 UTC · re: Russ Dill · lore

Re: git-svn+cygwin failed fetch

Russ Dill <russ.dill@gmail.com> wrote:
Show 29 quoted lines
> On 7/11/07, Eric Wong <normalperson@yhbt.net> wrote:
> >Russ Dill <russ.dill@gmail.com> wrote:
> >> [...]/src $ mkdir foo
> >> [...]/src $ cd foo
> >> [...]/src/foo $ git-svn init -t tags -b branches -T trunk
> >> https://www.[...].com/svn/foo/bar/bla
> >> Initialized empty Git repository in .git/
> >> Using higher level of URL: https://www.[...].com/svn/foo/bar/bla =>
> >> https://www.[...].com/svn/foo
> >>
> >> [...]/src/foo $ git-svn fetch
> >> config --get svn-remote.svn.url: command returned error: 1
> >>
> >> [...]/src/foo $ git config --get svn-remote.svn.url
> >> https://www.[...].com/svn/foo
> >
> >Sorry, I can't help here other than recommending a real UNIX with
> >fork + pipe + exec and all that fun stuff.
> >
> >git-svn relies heavily[1] on both input and output pipes of the
> >safer-but-made-for-UNIX fork + pipe + exec(@list) variety, so I suspect
> >this is just the tip of the iceberg for Windows incompatibilies with
> >git-svn...
> 
> Its actually reading and writing quite a bit of stuff from the config
> file, so why this one simple command would fail eludes me. Especially
> since it wrote it there in the first place. If I comment out the
> command_oneline and hardcode the value I know it should return,
> git-fetch runs. Its actually been running for several hours now.

Wow. That's a pleasant surprise that anything in git-svn works at all on cygwin. I was almost certain git-svn on Windows was a hopeless cause from other chatter I had heard on the mailing list.

command_oneline() is used everywhere in that code, so I'm at a total loss as to why it would fail in one place. Can you put a the following lines right before where it was failing?

	print "GIT_CONFIG: $ENV{GIT_CONFIG} | GIT_DIR: $ENV{GIT_DIR}\n";
	system('cat', "$ENV{GIT_DIR}/config");
And tell me what it outputs?
-- 
Eric Wong
Russ Dill· Jul 12, 2007, 17:49 UTC · re: Eric Wong · lore

Re: git-svn+cygwin failed fetch

On 7/11/07, Eric Wong <normalperson@yhbt.net> wrote:
Show 43 quoted lines
> Russ Dill <russ.dill@gmail.com> wrote:
> > On 7/11/07, Eric Wong <normalperson@yhbt.net> wrote:
> > >Russ Dill <russ.dill@gmail.com> wrote:
> > >> [...]/src $ mkdir foo
> > >> [...]/src $ cd foo
> > >> [...]/src/foo $ git-svn init -t tags -b branches -T trunk
> > >> https://www.[...].com/svn/foo/bar/bla
> > >> Initialized empty Git repository in .git/
> > >> Using higher level of URL: https://www.[...].com/svn/foo/bar/bla =>
> > >> https://www.[...].com/svn/foo
> > >>
> > >> [...]/src/foo $ git-svn fetch
> > >> config --get svn-remote.svn.url: command returned error: 1
> > >>
> > >> [...]/src/foo $ git config --get svn-remote.svn.url
> > >> https://www.[...].com/svn/foo
> > >
> > >Sorry, I can't help here other than recommending a real UNIX with
> > >fork + pipe + exec and all that fun stuff.
> > >
> > >git-svn relies heavily[1] on both input and output pipes of the
> > >safer-but-made-for-UNIX fork + pipe + exec(@list) variety, so I suspect
> > >this is just the tip of the iceberg for Windows incompatibilies with
> > >git-svn...
> >
> > Its actually reading and writing quite a bit of stuff from the config
> > file, so why this one simple command would fail eludes me. Especially
> > since it wrote it there in the first place. If I comment out the
> > command_oneline and hardcode the value I know it should return,
> > git-fetch runs. Its actually been running for several hours now.
>
> Wow.  That's a pleasant surprise that anything in git-svn works at all
> on cygwin.  I was almost certain git-svn on Windows was a hopeless cause
> from other chatter I had heard on the mailing list.
>
> command_oneline() is used everywhere in that code, so I'm at a total loss
> as to why it would fail in one place.  Can you put a the following lines
> right before where it was failing?
>
>         print "GIT_CONFIG: $ENV{GIT_CONFIG} | GIT_DIR: $ENV{GIT_DIR}\n";
>         system('cat', "$ENV{GIT_DIR}/config");
>
> And tell me what it outputs?
Use of uninitialized value in concatenation (.) or string at
/usr/bin/git-svn line 1189.
GIT_CONFIG:  | GIT_DIR: .git
[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[svn-remote "svn"]
        url = https://www.[...].com/svn/foo
        fetch = bar/bla/trunk:refs/remotes/trunk
        branches = bar/bla/branches/*:refs/remotes/*
        tags = bar/bla/tags/*:refs/remotes/tags/*
[gui]
        geometry = 864x678+162+162 104 204

If I export GIT_CONFIG, then the problem goes away. Much better work around then hardcoding svn-remote.svn.url

The git-svn fetch died overnight due to an http error. Its restarted now. There are dozens of branches and tags in the repo, and each one seems to take about a half hour to and hour to fully fetch. It takes a similar amount of time to checkout trunk with tortise SVN. The repo is local, but I don't have direct access to it.

Eric Wong· Jul 12, 2007, 18:27 UTC · re: Russ Dill · lore

Re: git-svn+cygwin failed fetch

Russ Dill <russ.dill@gmail.com> wrote:
Show 65 quoted lines
> On 7/11/07, Eric Wong <normalperson@yhbt.net> wrote:
> >Russ Dill <russ.dill@gmail.com> wrote:
> >> On 7/11/07, Eric Wong <normalperson@yhbt.net> wrote:
> >> >Russ Dill <russ.dill@gmail.com> wrote:
> >> >> [...]/src $ mkdir foo
> >> >> [...]/src $ cd foo
> >> >> [...]/src/foo $ git-svn init -t tags -b branches -T trunk
> >> >> https://www.[...].com/svn/foo/bar/bla
> >> >> Initialized empty Git repository in .git/
> >> >> Using higher level of URL: https://www.[...].com/svn/foo/bar/bla =>
> >> >> https://www.[...].com/svn/foo
> >> >>
> >> >> [...]/src/foo $ git-svn fetch
> >> >> config --get svn-remote.svn.url: command returned error: 1
> >> >>
> >> >> [...]/src/foo $ git config --get svn-remote.svn.url
> >> >> https://www.[...].com/svn/foo
> >> >
> >> >Sorry, I can't help here other than recommending a real UNIX with
> >> >fork + pipe + exec and all that fun stuff.
> >> >
> >> >git-svn relies heavily[1] on both input and output pipes of the
> >> >safer-but-made-for-UNIX fork + pipe + exec(@list) variety, so I suspect
> >> >this is just the tip of the iceberg for Windows incompatibilies with
> >> >git-svn...
> >>
> >> Its actually reading and writing quite a bit of stuff from the config
> >> file, so why this one simple command would fail eludes me. Especially
> >> since it wrote it there in the first place. If I comment out the
> >> command_oneline and hardcode the value I know it should return,
> >> git-fetch runs. Its actually been running for several hours now.
> >
> >Wow.  That's a pleasant surprise that anything in git-svn works at all
> >on cygwin.  I was almost certain git-svn on Windows was a hopeless cause
> >from other chatter I had heard on the mailing list.
> >
> >command_oneline() is used everywhere in that code, so I'm at a total loss
> >as to why it would fail in one place.  Can you put a the following lines
> >right before where it was failing?
> >
> >        print "GIT_CONFIG: $ENV{GIT_CONFIG} | GIT_DIR: $ENV{GIT_DIR}\n";
> >        system('cat', "$ENV{GIT_DIR}/config");
> >
> >And tell me what it outputs?
> 
> 
> Use of uninitialized value in concatenation (.) or string at
> /usr/bin/git-svn line 1189.
> GIT_CONFIG:  | GIT_DIR: .git
> [core]
>        repositoryformatversion = 0
>        filemode = true
>        bare = false
>        logallrefupdates = true
> [svn-remote "svn"]
>        url = https://www.[...].com/svn/foo
>        fetch = bar/bla/trunk:refs/remotes/trunk
>        branches = bar/bla/branches/*:refs/remotes/*
>        tags = bar/bla/tags/*:refs/remotes/tags/*
> [gui]
>        geometry = 864x678+162+162 104 204
> 
> 
> If I export GIT_CONFIG, then the problem goes away. Much better work
> around then hardcoding svn-remote.svn.url

Very strange. I do set GIT_CONFIG internally in git-svn in a few places and then unset it.

Show 5 quoted lines
> The git-svn fetch died overnight due to an http error. Its restarted
> now. There are dozens of branches and tags in the repo, and each one
> seems to take about a half hour to and hour to fully fetch. It takes a
> similar amount of time to checkout trunk with tortise SVN. The repo is
> local, but I don't have direct access to it.
SVN 1.4.4 with a working do_switch() API call should be much faster.
-- 
Eric Wong

← back to recent threads