Difference between revisions of "Subversion"
(Commit) |
(more) |
||
| Line 11: | Line 11: | ||
=Usage= | =Usage= | ||
| − | To create a new repository on the server | + | The most important command to know is how to get help; |
| + | svn help | ||
| + | svn help checkout # Help on check(ing)out project to CLIENT copy | ||
| + | svn help commmit # Help on commit(ting) changes to SERVER | ||
| + | |||
| + | To create a new repository on the server ready for importing a directory of files; | ||
cd /tmp | cd /tmp | ||
mkdir SERVER | mkdir SERVER | ||
svnadmin create /tmp/SERVER/newrepos | svnadmin create /tmp/SERVER/newrepos | ||
| − | Create example | + | This creates a concise directory for the new repository on the SERVER; |
| + | <pre> | ||
| + | ls -l /tmp/SERVER/newrepos | ||
| + | total 16 | ||
| + | -rw-r--r-- 1 User wheel 379 Apr 3 13:58 README.txt | ||
| + | drwxr-xr-x 4 User wheel 136 Apr 3 13:58 conf | ||
| + | drwxr-xr-x 2 User wheel 68 Apr 3 13:58 dav | ||
| + | drwxr-xr-x 10 User wheel 340 Apr 3 13:58 db | ||
| + | -r--r--r-- 1 User wheel 2 Apr 3 13:58 format | ||
| + | drwxr-xr-x 11 User wheel 374 Apr 3 13:58 hooks | ||
| + | drwxr-xr-x 4 User wheel 136 Apr 3 13:58 locks | ||
| + | </pre> | ||
| + | Create an example directory for upload; | ||
cd /tmp | cd /tmp | ||
mkdir MYTREE | mkdir MYTREE | ||
| Line 27: | Line 44: | ||
To make a local copy you need to use the checkout command. This creates a new directory (default called newrepos) which is a local copy of newrepos. | To make a local copy you need to use the checkout command. This creates a new directory (default called newrepos) which is a local copy of newrepos. | ||
| − | mkdir | + | mkdir CLIENT |
| − | cd | + | cd CLIENT |
svn co file:///tmp/SERVER/newrepos/some/project/ # fetches project/test.pl | svn co file:///tmp/SERVER/newrepos/some/project/ # fetches project/test.pl | ||
svn co file:///tmp/SERVER/newrepos/some/ # fetches some/project/test.pl | svn co file:///tmp/SERVER/newrepos/some/ # fetches some/project/test.pl | ||
| − | rm -rf /tmp/ | + | rm -rf /tmp/CLIENT |
| − | svn co file:///tmp/SERVER/newrepos/some/project/ /tmp/ | + | svn co file:///tmp/SERVER/newrepos/some/project/ /tmp/CLIENT # Creates CLIENT dir |
| − | Note: The directory the svn command is run in determines where the local checkout directories and files will end up. | + | ''Note: The directory the svn command is run in determines where the local checkout directories and files will end up.'' |
| − | Now that you have created a local copy all work should be conducted within it. There is a hidden directory called ''.svn'' which contains all the information required for the svn framework | + | Now that you have created a local copy all work should be conducted within it. There is a hidden directory called ''.svn'' which contains all the information required for the svn framework; |
| − | cd /tmp/ | + | cd /tmp/CLIENT # Work in the lcoal copy of svn |
| − | To update a file on your | + | To update a file on your CLIENT directory; |
| − | cd /tmp/ | + | cd /tmp/CLIENT |
svn update # "." is updated | svn update # "." is updated | ||
cd /tmp | cd /tmp | ||
| − | svn update /tmp/ | + | svn update /tmp/CLIENT # Sepecifying path |
| + | |||
| + | To add a new file to the local svn copy, first make a new file within the directory structure; | ||
| + | cd /tmp/CLIENT | ||
| + | echo '#!/usr/bin/perl -w\nprint qq(hello world!);' > /tmp/CLIENT/helloWorld2.pl | ||
| + | svn add helloWorld2.pl | ||
| − | + | The ''status'' command will identify differences between the CLIENT copy and the SERVER copy of the repoistory; | |
| − | svn status /tmp/ | + | svn status /tmp/CLIENT |
| + | The following list provides the details of ''svn status'' output; | ||
<pre> | <pre> | ||
L abc.c # svn has a lock in its .svn directory for abc.c | L abc.c # svn has a lock in its .svn directory for abc.c | ||
| Line 66: | Line 89: | ||
</pre> | </pre> | ||
| − | + | To upload the CLIENT copy changes to the SERVER copy use the ''commit'' command; | |
| − | + | svn commit /tmp/CLIENT | |
| − | |||
| − | |||
| − | |||
| − | To upload the | ||
| − | svn commit /tmp/ | ||
| + | Cleaning up directories in ''/tmp''; | ||
| + | rm -rf /tmp/SERVER /tmp/CLIENT /tmp/MYTREE | ||
| − | =Links= | + | =External Links= |
*http://www.onlamp.com/pub/a/bsd/2005/08/11/FreeBSD_Basics.html?page=2 | *http://www.onlamp.com/pub/a/bsd/2005/08/11/FreeBSD_Basics.html?page=2 | ||
*[http://www.chiark.greenend.org.uk/~sgtatham/svn.html Experiences With Subversion] | *[http://www.chiark.greenend.org.uk/~sgtatham/svn.html Experiences With Subversion] | ||
*http://www.abbeyworkshop.com/howto/misc/svn01/ | *http://www.abbeyworkshop.com/howto/misc/svn01/ | ||
*http://centerstageproject.com/wiki/index.php/SVN_Tutorial | *http://centerstageproject.com/wiki/index.php/SVN_Tutorial | ||
Revision as of 02:12, 3 April 2007
- Commands
- svn co url
Checkout, creates dir of name url
- svn ci -m comment
Checkin - applies to the svn-structure that cwd is in
Usage
The most important command to know is how to get help;
svn help svn help checkout # Help on check(ing)out project to CLIENT copy svn help commmit # Help on commit(ting) changes to SERVER
To create a new repository on the server ready for importing a directory of files;
cd /tmp mkdir SERVER svnadmin create /tmp/SERVER/newrepos
This creates a concise directory for the new repository on the SERVER;
ls -l /tmp/SERVER/newrepos total 16 -rw-r--r-- 1 User wheel 379 Apr 3 13:58 README.txt drwxr-xr-x 4 User wheel 136 Apr 3 13:58 conf drwxr-xr-x 2 User wheel 68 Apr 3 13:58 dav drwxr-xr-x 10 User wheel 340 Apr 3 13:58 db -r--r--r-- 1 User wheel 2 Apr 3 13:58 format drwxr-xr-x 11 User wheel 374 Apr 3 13:58 hooks drwxr-xr-x 4 User wheel 136 Apr 3 13:58 locks
Create an example directory for upload;
cd /tmp mkdir MYTREE echo '#!/usr/bin/perl -w\nprint "hello world";' > /tmp/MYTREE/helloWorld.pl svn import /tmp/MYTREE file:///tmp/SERVER/newrepos/some/project
Listing the contents in the repository;
svn list file:///tmp/SERVER/newrepos/some/project
To make a local copy you need to use the checkout command. This creates a new directory (default called newrepos) which is a local copy of newrepos.
mkdir CLIENT cd CLIENT svn co file:///tmp/SERVER/newrepos/some/project/ # fetches project/test.pl svn co file:///tmp/SERVER/newrepos/some/ # fetches some/project/test.pl rm -rf /tmp/CLIENT svn co file:///tmp/SERVER/newrepos/some/project/ /tmp/CLIENT # Creates CLIENT dir
Note: The directory the svn command is run in determines where the local checkout directories and files will end up.
Now that you have created a local copy all work should be conducted within it. There is a hidden directory called .svn which contains all the information required for the svn framework;
cd /tmp/CLIENT # Work in the lcoal copy of svn
To update a file on your CLIENT directory;
cd /tmp/CLIENT svn update # "." is updated cd /tmp svn update /tmp/CLIENT # Sepecifying path
To add a new file to the local svn copy, first make a new file within the directory structure;
cd /tmp/CLIENT echo '#!/usr/bin/perl -w\nprint qq(hello world!);' > /tmp/CLIENT/helloWorld2.pl svn add helloWorld2.pl
The status command will identify differences between the CLIENT copy and the SERVER copy of the repoistory;
svn status /tmp/CLIENT
The following list provides the details of svn status output;
L abc.c # svn has a lock in its .svn directory for abc.c
M bar.c # the content in bar.c has local modifications
M baz.c # baz.c has property but no content modifications
X 3rd_party # this dir is part of an externals definition
? foo.o # svn doesn't manage foo.o
! some_dir # svn manages this, but it's either missing or incomplete
~ qux # versioned as file/dir/link, but type has changed
I .screenrc # svn doesn't manage this, and is configured to ignore it
A + moved_dir # added with history of where it came from
M + moved_dir/README # added with history and has local modifications
D stuff/fish.c # this file is scheduled for deletion
A stuff/loot/bloo.h # this file is scheduled for addition
C stuff/loot/lump.c # this file has conflicts from an update
R xyz.c # this file is scheduled for replacement
S stuff/squawk # this file or dir has been switched to a branch
To upload the CLIENT copy changes to the SERVER copy use the commit command;
svn commit /tmp/CLIENT
Cleaning up directories in /tmp;
rm -rf /tmp/SERVER /tmp/CLIENT /tmp/MYTREE



