Difference between revisions of "Fossil"

From Organic Design wiki
(Migrating a repository from Subversion to Fossil: import into git)
(Migrating a repository from Subversion to Fossil)
Line 15: Line 15:
 
{{code|<bash>svn2git svn+ssh://svn.organicdesign.co.nz/svn/tools --rootistrunk</bash>}}
 
{{code|<bash>svn2git svn+ssh://svn.organicdesign.co.nz/svn/tools --rootistrunk</bash>}}
  
 +
 +
Then import the Git repository into Fossil,
 +
{{code|<bash>git fast-export --all | fossil import --git tools.fossil</bash>}}
 
[[Category:Libre software]]
 
[[Category:Libre software]]

Revision as of 13:33, 30 May 2012

Cone.png This article or section is a stub. Stubs are articles that have not yet received substantial attention from the authors. They are short or insufficient pieces of information and require additions to further increase the article's usefulness. The project values stubs as useful first steps toward complete articles.


Migrating a repository from Subversion to Fossil

Fossil is able to import and export from Git so first we migrate our subversion repository to Git.

svn2git is a tiny utility for migrating projects from Subversion to Git while keeping the trunk, branches and tags where they should be. It uses git-svn to clone an svn repository and does some clean-up to make sure branches and tags are imported in a meaningful way, and that the code checked into master ends up being what's currently in your svn trunk rather than whichever svn branch your last commit was in.

First we install svn2git as follows:

<bash>apt-get install git-core git-svn ruby rubygems

gem install svn2git</bash>


Next migrate the repos - ours at OD are not standard layout as they have no trunk, branches, or tags at the root level of the repo, the root level of the OD repos are equivalent to the trunk and there are no tags or branches. So we use the --rootistrunk switch in our Git import command as follows:

<bash>svn2git svn+ssh://svn.organicdesign.co.nz/svn/tools --rootistrunk</bash>


Then import the Git repository into Fossil,

<bash>git fast-export --all