Skip to content

[Bioc-devel] Merging git mirror and previous git repo ?

4 messages · Robert M. Flight, Neumann, Steffen, Jim Hester

#
Hi,

sorry for asking another git question, but I want to make sure 
I don't mess up. If something like this was answered elsewhere
and I missed it, just point me there.

I had developed a package up to Version 0.99.7 on github 
in https://github.com/sneumann/mtbls2/ , 
and now after acceptance to BioC I have 
version 0.99.8 in https://github.com/Bioconductor-mirror/mtbls2

=> Can I just update_remotes.sh on my sneumann/mtbls2 
   without messing up the repo ?

=> How do I get the two together ?! Can I just add 
   Bioconductor-mirror/mtbls2 as a remote, fetch and merge 
   into my sneumann/mtbls2, and continue to git svn dcommit from there ?

Or do I have to delete my original git repo 
and drop the whole history before the acceptance into Bioc-SVN ? 

Yours,
Steffen
#
I think the simplest course is to leave your remote as is, and not use the
Bioconductor mirror as a true remote. Instead, keep using the git-svn
bridge to push to Bioconductor. And put your github remote as the place to
submit issues, etc

Robert
On Fri, Sep 18, 2015, 5:18 PM Steffen Neumann <sneumann at ipb-halle.de> wrote:

            

  
  
2 days later
#
Hi Robert,
On Sa, 2015-09-19 at 01:14 +0000, Robert M. Flight wrote:
Great, I like this approach.
Excellent. Just to be sure, I merge the 0.99.8 from SVN 
into my github repo, and when creating the SVN bridge 
I tell it to just use the git content and ignore what's 
in the existing SVN for the initial synchronisation ? 

Yours,
Steffen
#
This situation is complicated due to deficiencies in git-svn.  The safest
(and most limiting) thing to do is to
    git clone https://github.com/sneumann/mtbls2/
    update_remotes.sh
    git checkout devel

Then restrict all further development to the `devel` branch, sync it with
SVN via `git svn rebase` and avoid doing any git merges.

Alternatively you can continue development on the `master` branch and `git
cherry-pick` revisions you want to add onto the `devel` branch.

Doing `git merge` and more complicated things can cause `git svn` conflicts
that are sometimes challenging to resolve.

See the following warning from the git book about git-svn (
https://git-scm.com/book/en/v1/Git-and-Other-Systems-Git-and-Subversion)
with Subversion, which is a system that is far less sophisticated than Git.
Although you can easily do local branching and merging, it?s generally best
to keep your history as linear as possible by rebasing your work and
avoiding doing things like simultaneously interacting with a Git remote
repository.
parallel Git repository to collaborate with fellow Git developers at the
same time. Subversion can have only a single linear history, and confusing
it is very easy. If you?re working with a team, and some are using SVN and
others are using Git, make sure everyone is using the SVN server to
collaborate ? doing so will make your life easier.

Also I should note the legacy git svn bridge has been deprecated, so it is
no longer possible to create new bridges, only continue using existing ones.

The Bioconductor Core team realizes the current situation is less than
ideal, we are working on alternatives which should make this situation
smoother in the future.

Jim

On Fri, Sep 18, 2015 at 5:18 PM, Steffen Neumann <sneumann at ipb-halle.de>
wrote: