Thread (1 message) 1 message, 1 author, 2016-06-15

Fwd: Problem using git svn clone

From: Gustaf Hendeby <hidden>
Date: 2016-06-15 22:43:12

Apparently gmail does some HTMLing on reply unless you watch out, so
this didn't reach the list.

/Gustaf

---------- Forwarded message ----------
From: Gustaf Hendeby <redacted>
Date: May 25, 2007 12:39 AM
Subject: Re: Problem using git svn clone
To: Seth Falcon <redacted>
Cc: git@vger.kernel.org


On 5/24/07, Seth Falcon [off-list ref] wrote:
"Gustaf Hendeby" [off-list ref] writes:
quoted
I have a problem with git-svn, which I hope the list can shed some
light over.  I'm quite new to git (but so far I really like it, great
job guys!) and I never use SVN, so don't really know what information
may be needed to be able to help me on the right track.  I hope the
below problem description is appropriate.
Although you've described in detail what you did, it isn't clear to me
what the problem is...
Let me clarify. When trying to check out the module with tags, the
first example I only get the revisions, no content at all!  I have
added some more info on this below.

The second case works as I expected it, I included it as reference,
and to show that it worked (probably not the smartest thing to do I
guess).  Hence, probably just the first example is of interest.
quoted
The situation is as follows:

I plan to use git and git svn to track a module in the middle of a SVN
repository (which I have no control over) where I don't have read
access more than to this specific module and the base directory, ie
the layout is similar to this
      https://svn.foo.bar/a/b/c/trunk
      https://svn.foo.bar/a/b/c/tags
      https://svn.foo.bar/a/b/c/branches
and I have read access to https://svm.foo.bar/a,
https://svn.foo.bar/a/b/c and below, but nothing else.

What I want to do is clone the whole thing, including tags and
branches.  I expected to be able to use the following command to do
this (git v1.5.2):

$ git svn clone https://svn.foo.bar/a/b/c -T trunk -t tags -b branches

Initialized empty Git repository in .git/
Using higher level of URL: https://svn.foo.bar/a/b/c => https://svn.foo.bar/a

W: Ignoring error from SVN, path probably does not exist: (175002): RA
layer request failed: REPORT request failed on '/a/!svn/bc/100':
REPORT of '/a/!svn/bc/100': Could not read chunk size: Secure
connection truncated (https://svn.foo.bar)
r306 = 83f0c10b988a8f1e77a3f354126c52f0cfdecf76 (trunk)
[...]
Found possible branch point: https://svn.foo.bar/a/b/c/trunk =>
https://svn.foo.bar/a/b/c/tags/0.1 , 314
Found branch parent: (tags/0.1) ad6a2361d0e69d6288ef226bb335bb4bf3bdd12e
Following parent with do_update
Successfully followed parent
r315 = 3b92c4885b9d6f60241533dd99fa5023eebb1c64 (tags/0.1)
r316 = 02e3b828b4f11c5fab9d10d85076a8ff209afa00 (trunk)
[...]

However, it seems I just get the info about the revisions (shows up
nicely in gitk) but no content at all.  The config file reads:
I'm really sorry, I mixed up the config files. :(  So I actually get
this for the first example not the second:

[core]
        repositoryformatversion = 0
        filemode = true
         bare = false
        logallrefupdates = true
[svn-remote "svn"]
        url = https://foo.bar/a
        fetch = b/c/trunk:refs/remotes/trunk
        branches = b/c/branches/*:refs/remotes/*
        tags = b/c/tags/*:refs/remotes/tags/*

Which looks good I guess...  But to be a bit more clear about what
this actually gives me in the directory I just cloned to, and this is
the problem:

$ git checkout -f master
Already on branch "master"
$ ls -a
.  ..  .git
$ du -hs .git/objects
186K    .git/objects

There should be hundreds of files here, several MB of code.  So
something has gone seriously wrong here --- or at least did not work
the way I expected it to.  The .git/objects in the second example
contains 5.7 MB data. More stats:

$ git rev-list --all | wc -l
99
$ git tag -l
$ git branch -a
* master
  tags/0.1
  tags/0.1.1
  tags/0.2.0
  tags/0.2.1
  trunk

No tags (I mistook some of the branches for tags in the first post),
but some branches all containing no files, though, still claiming to
be clean...
quoted

If I instead do:

$ git svn clone https://svn.foo.bar/a/b/c/trunk
I get all content in trunk and their revision history, but as expected
That looks like what you want.  Isn't it?
Second example works just as expected.

I assume the listed commands below are assumed to work with the second
example?  They doesn't seem to do any good to my first example.
With that config, I would expect:

git svn fetch
   pull updates for trunk and all branches and tags from the svn
   server.

git checkout -b trunk remotes/git-svn
   checkout the current trunk

git svn rebase
   fetch and rebase trunk or current branch.  git svn should determine
   the right git branch from refs/remotes to rebase against.

Does that help any?
Given the bad info I posted you did a great job, I really didn't
intend to waste the lists time. Thanks!  Though, my problem still
remains.  Given the new information, do you get any other ideas on
what I do wrong?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help