Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[git] repo-layout question: cross-repo cherry-picking?

Hi,

I'm working on migrating the Object Teams SVN to git and given that git is
meant to ease branching and merging I'm trying to solve the following:

Our repo contains a fork of org.eclipse.jdt.core, from which I periodically
fetch all changes and apply them to our fork. So far I'm doing this by manually
creating and applying patches, but in git times I figure I should just setup
the original jdt.core repo as a remote and use commands like cherry pick
for updating.
(Side issue: can I cherry pick (in EGit) many commits in one operation?)

Unfortunately, both repos don't match in structure, the jdt.core plugin
resides in these locations:

  repo: eclipse.jdt.core
  path:	/org.eclipse.jdt.core
vs.
  repo: org.eclipse.objectteams
  path:	/plugins/org.eclipse.jdt.core

At least from EGit I could not find a way how changes could be merged
across these two.

Is there a way to tell (E)Git that the two paths above match?


Alternatively, I've been playing with moving our fork to this location
(I did the move in git after the migration):

  org.eclipse.objectteams
	/org.eclipse.jdt.core

Now cherry-picking works, but EGit's history shows the moved version
as having no history. Is there a way to tell EGit to follow moves? If that's
possible, is it advisable to move a whole project so every history lookup
will require matching all those files across different paths?
To me this sounds more fragile than a move was in svn - am I missing 
anything?

Next I'm thinking of deep-diving into some variant of svn2git to see if
it can do the move during migration so we won't lose history.
Does anybody have experience with re-shuffling the directory structure
during svn2git? If so, which "svn2git" should I use, given there are several
different tools of the same name.

many thanks,
Stephan



Back to the top