Difference between revisions of "Git svn"

From relax wiki
Jump to navigation Jump to search
Line 1: Line 1:
 
= Background =
 
= Background =
  
== Windows ==
 
 
[http://www.tfnico.com/presentations/git-and-subversion Based on these posts] and on [http://trac.parrot.org/parrot/wiki/git-svn-tutorial this recommended post], and [http://john.albin.net/git/convert-subversion-to-git also this post.]
 
[http://www.tfnico.com/presentations/git-and-subversion Based on these posts] and on [http://trac.parrot.org/parrot/wiki/git-svn-tutorial this recommended post], and [http://john.albin.net/git/convert-subversion-to-git also this post.]
  
You should install [[msysgit]], to do the checkout.
+
You should install [[msysgit]] on windows, to do the checkout.
 
 
 
  md C:\relax
 
  md C:\relax
 
  cd C:\relax
 
  cd C:\relax
Line 13: Line 11:
  
 
You also need an [[Authors#authors.txt | authors.txt]] file, to correctly convert the metadata.  
 
You also need an [[Authors#authors.txt | authors.txt]] file, to correctly convert the metadata.  
 
 
  git svn clone http://svn.gna.org/svn/relax/trunk --no-metadata -A authors.txt
 
  git svn clone http://svn.gna.org/svn/relax/trunk --no-metadata -A authors.txt
 
  git svn clone -r 20000:HEAD http://svn.gna.org/svn/relax/trunk --no-metadata -A authors.txt
 
  git svn clone -r 20000:HEAD http://svn.gna.org/svn/relax/trunk --no-metadata -A authors.txt
Line 31: Line 28:
 
  git branch -a
 
  git branch -a
  
=== Setup remotes to github ===
+
== Setup remotes to github ==
==== For branch trunk ====
+
=== For branch trunk ===
 
  cd C:\relax\trunk
 
  cd C:\relax\trunk
 
  git remote add origin https://github.com/nmr-relax/trunk.git
 
  git remote add origin https://github.com/nmr-relax/trunk.git
Line 45: Line 42:
 
  git remote add hub https://GIT_USER_NAME@github.com/GIT_USER_NAME/trunk.git
 
  git remote add hub https://GIT_USER_NAME@github.com/GIT_USER_NAME/trunk.git
  
==== For branch relax_disp ====
+
=== For branch relax_disp ===
 
  cd C:\relax\relax_disp
 
  cd C:\relax\relax_disp
 
  git remote add origin https://github.com/nmr-relax/relax_disp.git
 
  git remote add origin https://github.com/nmr-relax/relax_disp.git
Line 58: Line 55:
 
  git remote add hub https://GIT_USER_NAME@github.com/GIT_USER_NAME/relax_disp.git
 
  git remote add hub https://GIT_USER_NAME@github.com/GIT_USER_NAME/relax_disp.git
  
=== git operations ===
+
== git operations ==
 
Now fetch changes from remote hub
 
Now fetch changes from remote hub
 
  git fetch origin
 
  git fetch origin
Line 74: Line 71:
 
  git push hub master
 
  git push hub master
  
== See also ==
+
= See also =
 
[[Category:git]]
 
[[Category:git]]

Revision as of 22:49, 21 July 2013

Background

Based on these posts and on this recommended post, and also this post.

You should install msysgit on windows, to do the checkout.

md C:\relax
cd C:\relax

To clone from a revision number, use -r NR. This will tell which revision to start taking history from. If you want to include all of the history, just leave that option off, but it will take a very long time, and you really don't need all of it. The older a revision you choose, the longer it will take to import. But you will not be able to "git blame" past the earliest revision you import.

You also need an authors.txt file, to correctly convert the metadata.

git svn clone http://svn.gna.org/svn/relax/trunk --no-metadata -A authors.txt
git svn clone -r 20000:HEAD http://svn.gna.org/svn/relax/trunk --no-metadata -A authors.txt
git svn clone http://svn.gna.org/svn/relax/branches/relax_disp --no-metadata -A authors.txt
git svn clone -r 20000:HEAD http://svn.gna.org/svn/relax/branches/relax_disp --no-metadata -A authors.txt
#Build
cd trunk
scons
cd ..
cd relax_disp
scons

For futurev updates to the SVN revision HEAD, you now need to do a git svn rebase, which is very similar to: svn up

git svn rebase

Check branch information

git branch -a

Setup remotes to github

For branch trunk

cd C:\relax\trunk
git remote add origin https://github.com/nmr-relax/trunk.git
# If you are a member of the organization, with writing permissions, then do:
git remote add origin https://GIT_USER_NAME@github.com/nmr-relax/trunk.git
# See the info
git remote -v
git remote show origin

Now go to github.com at https://github.com/nmr-relax/trunk and click Fork.
Now add this as a private remote, by setting the remote name hub.

git remote add hub https://GIT_USER_NAME@github.com/GIT_USER_NAME/trunk.git

For branch relax_disp

cd C:\relax\relax_disp
git remote add origin https://github.com/nmr-relax/relax_disp.git
# If you are a member of the organization, with writing permissions, then do:
git remote add origin https://GIT_USER_NAME@github.com/nmr-relax/relax_disp.git
# See the info
git remote -v
git remote show origin

Now go to github.com at https://github.com/nmr-relax/relax_disp and click Fork.
Now add this as a private remote, by setting the remote name hub.

git remote add hub https://GIT_USER_NAME@github.com/GIT_USER_NAME/relax_disp.git

git operations

Now fetch changes from remote hub

git fetch origin
git fetch hub
git branch -a

We need to make a setting how we push branches.

git config push.default simple

First get the latest changes from remote

git pull hub master
git log

Then send svn branch master of to github

git push hub master

See also