Showing posts with label allura. Show all posts
Showing posts with label allura. Show all posts

Monday, December 17, 2012

gdcm and submodule gdcmData


During migration, the tool simply copy/pasted the old submodule URL, which lead to inconsistencies such:

$ git clone --recursive git://git.code.sf.net/p/gdcm/gdcm
Cloning into 'gdcm'...
remote: Counting objects: 65664, done.
remote: Compressing objects: 100% (13537/13537), done.
remote: Total 65664 (delta 51934), reused 65658 (delta 51930)
Receiving objects: 100% (65664/65664), 20.31 MiB | 2.32 MiB/s, done.
Resolving deltas: 100% (51934/51934), done.
Submodule 'Testing/Data' (git://gdcm.git.sourceforge.net/gitroot/gdcm/gdcmData) registered for path 'Testing/Data'
Cloning into 'Testing/Data'...
remote: Counting objects: 438, done.
remote: Compressing objects: 100% (303/303), done.
remote: Total 438 (delta 134), reused 428 (delta 131)
Receiving objects: 100% (438/438), 160.33 MiB | 7.25 MiB/s, done.
Resolving deltas: 100% (134/134), done.
Submodule path 'Testing/Data': checked out 'ebd3260d5dd315dd99dae78c783c2fc1beb18f01'
Well, this is not really an issue, we will just delete the old submodule and point to the new one.

Seems easy ? Well not quite, the new Allura does not cope with Upper case in name for mount point, so gdcmData needs to be gdcmdata now ...

Update: the following page explains how to delete (rm) submodule:
http://chrisjean.com/2009/04/20/git-submodules-adding-using-removing-and-updating/

GDCM Git migration in sf.net

Migration of GDCM to new sf.net/allura system did not work quite as I expected. I really like the shell based control I used to have.

So here is what I discover to copy/over the old setup to the new one:

Login to your shell space:
$ ssh -t malat,[email protected] create
As 17/12/2012, the sf-help command is not really helpful since it only returns path to my old git directory:

% sf-help
[...]
Your project DSCM repositories are here (use adminrepo for CVS and SVN):
/home/scm_git/g/gd/gdcm

Anyway I discover this is right here:

$ cd /home/git/p/gdcm
The new system is not as flexible, you cannot easily create new directory:

[malat@shell-22006]/home/git/p/gdcm% touch bla.git
touch: cannot touch `bla.git': Permission denied
Instead you have to go back to the web interface, go 'Admin', then 'Tools', then click 'Git'. It will ask for a Label and a Mount Point, in my case I wanted Code/code to become Gdcm/gdcm. Fill accordingly to your project. Click ok.

Now if you go back to

$ cd /home/git/p/gdcm
You'll be pleasantly surprised... that nothing happened. Even if you log off, and log back in, no gdcm.git has been created...well technically yes. Simply type:

[malat@shell-22006]/home/git/p/gdcm% shutdown
and then log back in:

$ ssh -t malat,[email protected] create
$ cd /home/git/p/gdcm
And now, you can edit in place file as you want

[malat@shell-22006]/home/git/p/gdcm% echo "super" > gdcm.git/description 
Now all is left to do is copy code.git over to gdcm.git:

$ git clone --mirror git://git.code.sf.net/p/gdcm/code
$ cd code.git
$ git push --mirror --all ssh://[email protected]/p/gdcm/gdcm
You can even use diff to your old rep:

[malat@shell-22006]/home/git/p/gdcm% diff -ru gdcm.git /home/scm_git/g/gd/gdcm/gdcm
Of course, when you are done, go back to Allura web interface, go to Admin/Tools and select select Git/Code and click 'Delete'.
Hope this help !

Update: Only after struggling with this did I discover the path was actually documented here:

https://sourceforge.net/p/forge/documentation/Git/#accessing-the-repository-via-the-shell