From: Josef Wolf <jw@raven.inka.de>
To: git@vger.kernel.org
Subject: git-svn and repository hierarchy?
Date: Tue, 24 Feb 2009 23:34:12 +0100 [thread overview]
Message-ID: <20090224223412.GA4573@raven.wolf.lan> (raw)
Hello,
I have set up a repository hierarchy like this:
subversion-repos
|
git-svn-repos
/ | \
clone1 clone2 clone3
subversion-repos is an existing repository that can not be converted to
git.
git-svn-clone is meant as an intermediate "synchronization" repository.
I never commit directly to this repos. Its only intention is to
synchronize the clones to each other and against subversion-repos.
git-svn-clone was created by
git svn init --stdlayout $svn_url git-svn-repos
(cd git-svn-repos && git svn fetch)
cloneX are ordinary git clones of git-svn-repos for the day-by-day work.
They were created by
git clone git-svn-repos cloneX
I can successfully work on the clones. To synchronize with git-svn-clone,
I do
git stash
git pull
git push origin
git stash apply
git stash clear
And here is my first problem: every time I push to git-svn-repos, its
working tree gets out of sync, because pushing don't update the tree.
So every time I push, "git status" shows me local modifications which
are actually outdated files. I thought I could use a bare repository
to avoid this problem, but git-svn refuses to work on a bare repos.
So here's my first question: Any ideas how to get around this?
Once git-svn-repos is cleaned up, I want it to synchronize against
subversion-repos. Thus I do
git svn rebase
git svn dcommit
This works most of the time. Sometimes, I get error messages
like this from rebase:
Applying Fix logging of IP-Addresses when reading access list.
error: patch failed: upnp/websrv:528
error: upnp/websrv: patch does not apply
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
No changes -- Patch already applied.
I've never seen any damage after this error message, and the last line
suggests that this is only some informative warning.
But now here's the real catch: this time I got following error
message from "git svn rebase":
Auto-merged server/misc.c
CONFLICT (content): Merge conflict in server/misc.c
Failed to merge in the changes.
Patch failed at 0005.
When you have resolved this problem run "git rebase --continue".
If you would prefer to skip this patch, instead run "git rebase --skip".
To restore the original branch and stop rebasing run "git rebase --abort".
Unfortunately, none of the three suggested commands help.
Investigation reveals that the conflict was caused by two independent
commits to one of the clones. That is: both commits were on the same
clone and no commits were done to the other clones in the mean time.
The commits just happen to touch neighboring lines.
Those two commits have managed to go all the way up from cloneA through
git-svn-repos to subversion-repos without any problem. Only on the way
back from subversion-repos to git-svn-repos, they create the conflict.
Any ideas how to clean up from the situation? And how to avoid this
problem in the future?
next reply other threads:[~2009-02-24 22:41 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-02-24 22:34 Josef Wolf [this message]
2009-02-25 9:26 ` git-svn and repository hierarchy? Michael J Gruber
2009-02-25 23:24 ` Josef Wolf
2009-02-26 1:02 ` Peter Harris
2009-02-27 16:58 ` Josef Wolf
2009-02-27 18:11 ` Peter Harris
2009-02-27 23:58 ` Josef Wolf
2009-02-28 2:41 ` Peter Harris
2009-02-27 17:12 ` Josef Wolf
2009-02-27 17:45 ` Michael J Gruber
2009-02-27 22:05 ` Josef Wolf
2009-02-28 17:59 ` Michael J Gruber
2009-03-03 18:51 ` Josef Wolf
2009-03-03 19:35 ` Peter Harris
2009-03-03 22:36 ` Josef Wolf
2009-03-04 0:18 ` Peter Harris
2009-03-04 19:27 ` Josef Wolf
2009-03-04 22:06 ` Peter Harris
2009-03-05 18:05 ` Josef Wolf
2009-03-05 19:48 ` Peter Harris
2009-03-06 16:10 ` Josef Wolf
2009-03-06 16:58 ` Peter Harris
2009-03-06 17:57 ` Josef Wolf
2009-03-08 20:33 ` Florian Mickler
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=20090224223412.GA4573@raven.wolf.lan \
--to=jw@raven.inka.de \
--cc=git@vger.kernel.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;
as well as URLs for NNTP newsgroup(s).