Differences between revisions 13 and 14
Revision 13 as of 2011-01-12 12:52:12
Size: 4661
Editor: YoichiAso
Comment:
Revision 14 as of 2011-01-12 12:53:49
Size: 1913
Editor: YoichiAso
Comment:
Deletions are marked like this. Additions are marked like this.
Line 12: Line 12:

== LCGT SVN quick start ==
See [[/QuickStart|here]].
Line 23: Line 19:
== LCGT SVN quick start ==
See [[/QuickStart|here]].
Line 27: Line 26:

=== Branching ===
If you want to make large changes to the source tree, it may take sometime. While you are making changes, other people will not want to work on the same source tree because they may interfere with your changes. This is a waste of other people's time. In order to avoid this problem, you can use branching capability of svn.

Branching is a way to make a copy of a source tree in a repository. For example, if you want to make a large modification of trunk/isc/IFOmodel, you can create a copy of trunk/isc/IFOmodel to branches/isc/IFOmodel by the following command.

{{{svn copy https://granite.phys.s.u-tokyo.ac.jp/svn/LCGT/trunk/isc/IFOmodel https://granite.phys.s.u-tokyo.ac.jp/svn/LCGT/branches/isc/myIFOmodel}}}

Before issuing the above command, you have to make sure that branches/isc/ exist. If not, run the following command first,

{{{svn mkdir --parents https://granite.phys.s.u-tokyo.ac.jp/svn/LCGT/branches/isc}}}

After making a copy in the branches directory, you can checkout myIFOmodel and start making changes. Since myIFOmodel is a copy of the original, you can experiment with it as much as you want without interfering with other people working on the original IFOmodel.

Once you are done with your changes with myIFOmodel, you can merge your changes back to the original IFOmodel using {{{svn merge}}} command. Of course merging may not work right away because your changes to myIFOmodel may be incompatible with the current revision of IFOmodel. Here, manual human intervention is necessary to resolve conflicts.

=== Tagging ===
Tagging is technically identical to branching in SVN. However, it is useful to distinguish branching and tagging in human mind. Tagging is used when you want to store the current status of the source tree as a snapshot. For example, if you used the current version of IFOmodel to create plots for a presentation at an LCGT f2f meeting. Then you can tag the current revision as

{{{svn copy https://granite.phys.s.u-tokyo.ac.jp/svn/LCGT/trunk/isc/IFOmodel https://granite.phys.s.u-tokyo.ac.jp/svn/LCGT/tags/isc/IFOmodel-2011-2-f2f}}}

IFOmodel-2011-2-f2f is an exact copy of the current IFOmodel. You can actually use it as a branch of IFOmodel. But as a convention, you don't touch it. Then the status of IFOmodel-2011-2-f2f is preserved. If someone want to reproduce the plots for this f2f meeting later, he/she can check-out IFOmodel-2011-2-f2f and run the codes inside.

Tagging is a way to take snapshots of the code development. Because svn always keeps track of the changes, tagging is in principle not necessary (you can rollback to anytime you want). Nonetheless, it is convenient to give a human readable name to a snapshot, rather than a number, like revision 4821.
See [[/BranchTag|here]].

Version Control System for LCGT

This page contains information for using version control system, subversion, for various LCGT tasks.

Introduction, why version control system ?

Version control system (VCS) is a computer tool to manage the history of various files you work on. Usually, files are documents or program codes, but you can use it for managing virtually any type of files. It keeps track of the changes you make to the files and let you roll back to any previous version if you want. The VCS is particularly useful when several people are working on a single set of files, for example, a group of people writing a paper, or several people developing a simulation code together. Subversion (svn) is a popular VCS and used by many projects around the world. There is an svn repository for LCGT. LCGT collaborators are strongly encouraged to use this svn repository for any applicable tasks.

For more detailed reasonings for the use of VCS, see here.

LCGT SVN Policies

  • Feel free to use SVN. Don't be afraid of commit. You can always rollback your changes.
  • Always add comments when you commit changes.
  • Create a ticket when you want to make a major change or find a problem. Make sure to put the email addresses of the people who will should be notified of the change or the problem in the CC field of the ticket properties.
  • Create branch if you want to make large changes.

LCGT SVN quick start

See here.

Basic work flow of SVN

See here.

Branching and Tagging

See here.

trac and tickets

trac is a project management system used in conjunction with svn. The LCGT trac can be accessed from https://granite.phys.s.u-tokyo.ac.jp/trac/LCGT/.

There are two main use of trac for LCGT, repository browsing and the ticket system.

LCGT/SVN (last edited 2021-06-03 12:14:16 by Ken-ichi Oohara)