|
Size: 394
Comment:
|
Size: 2409
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 1: | Line 1: |
| == Checkout out the main branch: == | #acl LcnGroup:read,write,delete,revert All: |
| Line 3: | Line 3: |
| '''CVS''' | This page is provided for !FreeSurfer developers to assist in the CVS -> git transition. Git is a feature loaded version control system which at times can be a bit of a hurdle to learn. However, when used in its simplest form it is very similar to most all other version control systems, including CVS. This page will give the basic CVS commands used by most !FreeSurfer developers the git equivalent of that command. == Initial Git Setup == When we start out using git we want to set a few of our configuration settings. We only need to do this one time: |
| Line 5: | Line 10: |
| export CVSROOT=/space/repo/1/dev cvs checkout dev |
$> cd ~ $> git config --global user.name "Zeke Kaufman" $> git config --global user.email zkaufman@nmr.mgh.harvard.edu }}} For additional examples of git specifics setting (e.g. default editor, color settings), see the following page: https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration == Checkout out the main branch == When working with CVS, we would checkout out the repository {{{ $> git clone /space/freesurfer/repo/freesurfer $> cvs checkout dev |
| Line 9: | Line 24: |
| '''git''' {{{ git clone /space/freesurfer/repo/freesurfer }}} |
|
| Line 17: | Line 28: |
| # CVS export CVSROOT=/space/repo/1/dev cvs checkout -r stable6 dev |
$> git clone -b stable6 /space/freesurfer/repo/freesurfer $> cvs checkout -r stable6 dev |
| Line 22: | Line 33: |
| {{{ # git git clone -b stable6 /space/freesurfer/repo/freesurfer }}} |
== Daily Workflow == |
| Line 28: | Line 36: |
| Replace a data file: | Commit a modified source code file: ||'''cvs'''||{{{cvs commit -m "Added new capabilities." <file_name>}}}|| ||<|2>'''git'''||{{{git commit -m "Added new capabilities." <file_name>}}}|| ||{{{git push}}}|| Modify and commit a data file: ||'''cvs'''||{{{cvs commit <file_name>}}}|| ||<|5>'''git'''||{{{git annex unlock <file_name>}}}|| ||{{{git annex add <file_name>}}}|| ||{{{git commit <file_name>}}}|| ||{{{git push}}}|| ||{{{git annex copy --to origin <file_name>}}}|| Add a data file: ||<|2>'''cvs'''||{{{cvs add <file_name>}}}|| ||{{{cvs commit <file_name>}}}|| ||<|4>'''git'''||{{{git annex add <file_name>}}}|| ||{{{git commit <file_name>}}}|| ||{{{git push}}}|| ||{{{git annex copy --to origin <file_name>}}}|| Remove data file: ||<|3>'''cvs'''||{{{rm <file_name>}}}|| ||{{{cvs rm <file_name>}}}|| ||{{{cvs commit -m "Removing <file_name>" <file_name>}}}|| ||<|2>'''git'''||{{{git rm <file_name>}}}|| ||{{{git commit -m "Removing <file_name>" <file_name>}}}|| Undo 1 commit (before push): ||'''git'''||{{{git reset --soft HEAD~1}}}|| Undo 2 commits: ||'''git'''||{{{git reset --soft HEAD~2}}}|| |
This page is provided for FreeSurfer developers to assist in the CVS -> git transition. Git is a feature loaded version control system which at times can be a bit of a hurdle to learn. However, when used in its simplest form it is very similar to most all other version control systems, including CVS. This page will give the basic CVS commands used by most FreeSurfer developers the git equivalent of that command.
Initial Git Setup
When we start out using git we want to set a few of our configuration settings. We only need to do this one time:
$> cd ~ $> git config --global user.name "Zeke Kaufman" $> git config --global user.email zkaufman@nmr.mgh.harvard.edu
For additional examples of git specifics setting (e.g. default editor, color settings), see the following page: https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration
Checkout out the main branch
When working with CVS, we would checkout out the repository
$> git clone /space/freesurfer/repo/freesurfer $> cvs checkout dev
Checkout the stable branch:
$> git clone -b stable6 /space/freesurfer/repo/freesurfer $> cvs checkout -r stable6 dev
Daily Workflow
Commit a modified source code file:
cvs |
cvs commit -m "Added new capabilities." <file_name> |
git |
git commit -m "Added new capabilities." <file_name> |
git push |
Modify and commit a data file:
cvs |
cvs commit <file_name> |
git |
git annex unlock <file_name> |
git annex add <file_name> |
|
git commit <file_name> |
|
git push |
|
git annex copy --to origin <file_name> |
Add a data file:
cvs |
cvs add <file_name> |
cvs commit <file_name> |
|
git |
git annex add <file_name> |
git commit <file_name> |
|
git push |
|
git annex copy --to origin <file_name> |
Remove data file:
cvs |
rm <file_name> |
cvs rm <file_name> |
|
cvs commit -m "Removing <file_name>" <file_name> |
|
git |
git rm <file_name> |
git commit -m "Removing <file_name>" <file_name> |
Undo 1 commit (before push):
git |
git reset --soft HEAD~1 |
Undo 2 commits:
git |
git reset --soft HEAD~2 |
