Git development
 help / color / mirror / Atom feed
From: Eric Wong <normalperson@yhbt.net>
To: Ingmar Vanhassel <ingmar@exherbo.org>
Cc: git@vger.kernel.org
Subject: Re: git-svn: dcommit --commiturl rebases against fetch url rather than against commit url
Date: Wed, 25 Nov 2009 17:59:19 -0800	[thread overview]
Message-ID: <20091126015919.GA22762@dcvr.yhbt.net> (raw)
In-Reply-To: <1259198081-sup-3175@cannonball>

Ingmar Vanhassel <ingmar@exherbo.org> wrote:
> Hi Eric & list,
> 
> I'm using a git-svn setup where svn-remote.svn.url is set to use
> anonymouse svn, and svn-remote.svn.commiturl uses my ssh+svn:// login.
> 
> I'm using anonymous svn for fetching because this git-svn import is
> shared with a few other developers, who don't have commit access, but
> who do prefer to use a git-svn import over SVN, for their work. Since I
> use anonsvn for the import they can continue my import.
> 
> When I dcommit to svn, git-svn happily commits the first commit. When it
> tries to rebase after that it fetches from the anonsvn url, which is
> synced only ever 5 or 10 minutes. Thus, it doesn't find my commit, and
> it aborts, meaning I need to wait until anonsvn catches up, before being
> able to do another commit.

Hi Ingmar,

Wow, talk about weird corner cases.  Is this the monster KDE SVN repo?
I suppose the sync delay and multiple servers is necessary for that
thing.  I wrote commitUrl because I needed to work on a tiny repo :)
(and it was migrated fully to git shortly after)

> Any suggestions on how this could be solved without reimporting with
> the rewriteRoot option set?

Depending on how big your imported repo is, I might want to keep two
copies since rewriteRoot can be messy.  So keep using the anonymous one
shared with your developers, and make a full copy of $GIT_DIR for
yourself to run git filter-branch against.

That means don't write to the anonymous one at all here, just copy that
entire $GIT_DIR in case something goes wrong, you can recopy and tweak
the procedure (It's been a while since I've tried this :)

 * write a git filter-branch script that rewrites the git-svn-id:
   lines to the svn+ssh:// URL,  I haven't used filter-branch in
   a while but this should work...

 * remove all .rev_map.* files under $GIT_DIR/svn

 * change your $GIT_CONFIG file to point to the svn+ssh URL
   no need to use the commitUrl option anymore, either

 * remove $GIT_DIR/svn/.metadata to be safe, too

 * run "git svn fetch"
   This last step should rebuild all the .rev_map.* files under
   $GIT_DIR/svn.

Hopefully that works for you, let us know how it goes.

-- 
Eric Wong

      reply	other threads:[~2009-11-26  1:59 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-26  1:15 git-svn: dcommit --commiturl rebases against fetch url rather than against commit url Ingmar Vanhassel
2009-11-26  1:59 ` Eric Wong [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20091126015919.GA22762@dcvr.yhbt.net \
    --to=normalperson@yhbt.net \
    --cc=git@vger.kernel.org \
    --cc=ingmar@exherbo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox