The typical repository layout should resemble the following figure:ĭescription of the illustration maven_dt_008.pngĭevelopment of the main code line occurs in the trunk directories. svn+ssh might not be available on Windows by default.Īlthough Subversion does not require any particular subdirectory structure within a repository, it is a good idea to follow an established convention, as this book does.
Refer to the Subversion documentation for information on how to configure other protocols. Svn ls addition to svn+ssh, there are several other protocols that are supported by Subversion. Now that you have created a repository, you can use the Subversion client to perform standard operations against the new repository by using the following base URL: You can modify this in the REPOS_PATH /conf/nf file. This means that anyone with SSH access, regardless of repository permissions settings, can check out repository files. Ensure that user and group permissions for all files in the new repository reflect the type of access control that you want to have over the repository contents.īy default, anonymous, read-only access is enabled for a new repository. Svnadmin create C:\ciroot\subversion\repositoryĪccess to the repository is controlled by file permissions and the user referenced for accessing the repository through the SVN client. Svnadmin create /ciroot/subversion/repository In this command REPOS_PATH is the absolute path to the local file system. In this command, REPOS_PATH is the absolute path to the local file system.Ĭreate a repository on a given path by running the following command: The command-line utility called svnadmin is the primary tool for server-side administrative operations.Ĭreate a directory for the repository by running the following command: This approach requires that you have at least one person who is fairly familiar with branching, and merging to act as a facilitator.After Subversion is installed, you must create a repository. They will create new files,change files, create conflicts, resolve them. Start the repo with a single text file, tell people how to clone/push/pull the repo then tell them to change something (don't specify what). People were willing to experiment because it was meangingless data. We all brought our laptops and played in the same repo, changing files, committing, pushing,pulling. We did a lunch&learn on day zero of the switchover to mercurial. During that time some of the team tinkered with hg and got a certain level of proficiency. We set a date for switchover (one month out). That will give you a taste of the powerful branching and tagging that svn lacks.
Pick a new feature that may take a little while to develop (days to a couple weeks), then start doing it in an hg repo converted from your svn base. To manually sync from hg to svn: hg pull -u
To manually sync from svn to hg: svn update
Ideally, the developers involved in the trial should be committing to both vcs's in sync, but. Use development "sandboxes" that contain both the. If you want to experiment with something on a named branch, try it in a hg-only sandbox. I would also suggest developing only on the default branch in the dual-sandbox. I wouldn't recommend keeping this split personality for very long since the history will tend to be littered with non-helpful commit messages like "big sync between hg,svn". You can get familiar with it somewhat on the small scale with a local (non-cloned) hg repo, but you won't get comfortable with hg until you've worked on it as a team. If you are just trying it out, simply use them in parallel.