bash-3.2$ svn help usage: svn [options] [args] Subversion command-line client, version 1.7.10. Type 'svn help ' for help on a specific subcommand. Type 'svn --version' to see the program version and RA modules or 'svn --version --quiet' to see just the version number. Most subcommands take file and/or directory arguments, recursing on the directories. If no arguments are supplied to such a command, it recurses on the current directory (inclusive) by default. Available subcommands: add blame (praise, annotate, ann) cat changelist (cl) checkout (co) cleanup commit (ci) copy (cp) delete (del, remove, rm) diff (di) export help (?, h) import info list (ls) lock log merge mergeinfo mkdir move (mv, rename, ren) patch propdel (pdel, pd) propedit (pedit, pe) propget (pget, pg) proplist (plist, pl) propset (pset, ps) relocate resolve resolved revert status (stat, st) switch (sw) unlock update (up) upgrade Subversion is a tool for version control. For additional information, see http://subversion.apache.org/ bash-3.2$ svn checkout https://subversion.assembla.com/svn/archer-cookbook A archer-cookbook/trunk A archer-cookbook/branches A archer-cookbook/readme.textile A archer-cookbook/tags Checked out revision 1. bash-3.2$ pwd /Users/arno/repositories/svn bash-3.2$ ls archer-cookbook bash-3.2$ cd archer-cookbook/ bash-3.2$ ls branches readme.textile tags trunk bash-3.2$ ls -l total 8 drwxr-xr-x 2 arno staff 68 12 Nov 15:41 branches -rw-r--r-- 1 arno staff 340 12 Nov 15:41 readme.textile drwxr-xr-x 2 arno staff 68 12 Nov 15:41 tags drwxr-xr-x 2 arno staff 68 12 Nov 15:41 trunk bash-3.2$ ls branches/ bash-3.2$ ls tags/ bash-3.2$ ls trunk/ bash-3.2$ cat readme.textile h1. Assembla.readme In assembla you can use "textile(Textile Basics)":http://bit.ly/textile-basics, "html(Html Basics)":http://bit.ly/html-basics or "markdown(Markdown Basics)":http://bit.ly/markdown-basics to add some sugar to your readme files. Just add the extention to your readme file, so we can recognize the markup you want to use! bash-3.2$ svn log ------------------------------------------------------------------------ r1 | www-data | 2014-08-26 21:22:14 +0100 (Tue, 26 Aug 2014) | 1 line Automatically created readme.textile and /trunk, /branches, /tags directories. We recommend you to put all your code there. ------------------------------------------------------------------------ bash-3.2$ ls branches readme.textile tags trunk bash-3.2$ pwd /Users/arno/repositories/svn/archer-cookbook bash-3.2$ emacs recipe bash-3.2$ ls branches recipe trunk readme.textile tags bash-3.2$ pwd /Users/arno/repositories/svn/archer-cookbook bash-3.2$ svn log ------------------------------------------------------------------------ r1 | www-data | 2014-08-26 21:22:14 +0100 (Tue, 26 Aug 2014) | 1 line Automatically created readme.textile and /trunk, /branches, /tags directories. We recommend you to put all your code there. ------------------------------------------------------------------------ bash-3.2$ svn status ? recipe bash-3.2$ svn help status status (stat, st): Print the status of working copy files and directories. usage: status [PATH...] With no args, print only locally modified items (no network access). With -q, print only summary information about locally modified items. With -u, add working revision and server out-of-date information. With -v, print full revision information on every item. The first seven columns in the output are each one character wide: First column: Says if item was added, deleted, or otherwise changed ' ' no modifications 'A' Added 'C' Conflicted 'D' Deleted 'I' Ignored 'M' Modified 'R' Replaced 'X' an unversioned directory created by an externals definition '?' item is not under version control '!' item is missing (removed by non-svn command) or incomplete '~' versioned item obstructed by some item of a different kind Second column: Modifications of a file's or directory's properties ' ' no modifications 'C' Conflicted 'M' Modified Third column: Whether the working copy directory is locked ' ' not locked 'L' locked Fourth column: Scheduled commit will contain addition-with-history ' ' no history scheduled with commit '+' history scheduled with commit Fifth column: Whether the item is switched or a file external ' ' normal 'S' the item has a Switched URL relative to the parent 'X' a versioned file created by an eXternals definition Sixth column: Repository lock token (without -u) ' ' no lock token 'K' lock token present (with -u) ' ' not locked in repository, no lock token 'K' locked in repository, lock toKen present 'O' locked in repository, lock token in some Other working copy 'T' locked in repository, lock token present but sTolen 'B' not locked in repository, lock token present but Broken Seventh column: Whether the item is the victim of a tree conflict ' ' normal 'C' tree-Conflicted If the item is a tree conflict victim, an additional line is printed after the item's status line, explaining the nature of the conflict. The out-of-date information appears in the ninth column (with -u): '*' a newer revision exists on the server ' ' the working copy is up to date Remaining fields are variable width and delimited by spaces: The working revision (with -u or -v; '-' if the item is copied) The last committed revision and last committed author (with -v) The working copy path is always the final field, so it can include spaces. The presence of a question mark ('?') where a working revision, last committed revision, or last committed author was expected indicates that the information is unknown or irrelevant given the state of the item (for example, when the item is the result of a copy operation). The question mark serves as a visual placeholder to facilitate parsing. Example output: svn status wc M wc/bar.c A + wc/qax.c svn status -u wc M 965 wc/bar.c * 965 wc/foo.c A + - wc/qax.c Status against revision: 981 svn status --show-updates --verbose wc M 965 938 kfogel wc/bar.c * 965 922 sussman wc/foo.c A + - 687 joe wc/qax.c 965 687 joe wc/zig.c Status against revision: 981 svn status M wc/bar.c ! C wc/qaz.c > local missing, incoming edit upon update D wc/qax.c Valid options: -u [--show-updates] : display update information -v [--verbose] : print extra information -N [--non-recursive] : obsolete; try --depth=files or --depth=immediates --depth ARG : limit operation by depth ARG ('empty', 'files', 'immediates', or 'infinity') -q [--quiet] : don't print unversioned items --no-ignore : disregard default and svn:ignore property ignores --incremental : give output suitable for concatenation --xml : output in XML --ignore-externals : ignore externals definitions --changelist [--cl] ARG : operate only on members of changelist ARG Global options: --username ARG : specify a username ARG --password ARG : specify a password ARG --no-auth-cache : do not cache authentication tokens --non-interactive : do no interactive prompting --trust-server-cert : accept SSL server certificates from unknown certificate authorities without prompting (but only with '--non-interactive') --config-dir ARG : read user configuration files from directory ARG --config-option ARG : set user configuration option in the format: FILE:SECTION:OPTION=[VALUE] For example: servers:global:http-library=serf bash-3.2$ svn status ? recipe bash-3.2$ svn add recipe A recipe bash-3.2$ svn log ------------------------------------------------------------------------ r1 | www-data | 2014-08-26 21:22:14 +0100 (Tue, 26 Aug 2014) | 1 line Automatically created readme.textile and /trunk, /branches, /tags directories. We recommend you to put all your code there. ------------------------------------------------------------------------ bash-3.2$ svn help add add: Put files and directories under version control, scheduling them for addition to repository. They will be added in next commit. usage: add PATH... Valid options: --targets ARG : pass contents of file ARG as additional args -N [--non-recursive] : obsolete; try --depth=files or --depth=immediates --depth ARG : limit operation by depth ARG ('empty', 'files', 'immediates', or 'infinity') -q [--quiet] : print nothing, or only summary information --force : force operation to run --no-ignore : disregard default and svn:ignore property ignores --auto-props : enable automatic properties --no-auto-props : disable automatic properties --parents : add intermediate parents Global options: --username ARG : specify a username ARG --password ARG : specify a password ARG --no-auth-cache : do not cache authentication tokens --non-interactive : do no interactive prompting --trust-server-cert : accept SSL server certificates from unknown certificate authorities without prompting (but only with '--non-interactive') --config-dir ARG : read user configuration files from directory ARG --config-option ARG : set user configuration option in the format: FILE:SECTION:OPTION=[VALUE] For example: servers:global:http-library=serf bash-3.2$ svn commit svn: E205007: Commit failed (details follow): svn: E205007: Could not use external editor to fetch log message; consider setting the $SVN_EDITOR environment variable or using the --message (-m) or --file (-F) options svn: E205007: None of the environment variables SVN_EDITOR, VISUAL or EDITOR are set, and no 'editor-cmd' run-time configuration option was found bash-3.2$ svn commit -m "Added recipe template" Adding recipe Transmitting file data . Committed revision 2. bash-3.2$ svn log ------------------------------------------------------------------------ r1 | www-data | 2014-08-26 21:22:14 +0100 (Tue, 26 Aug 2014) | 1 line Automatically created readme.textile and /trunk, /branches, /tags directories. We recommend you to put all your code there. ------------------------------------------------------------------------ bash-3.2$ svn update Updating '.': At revision 2. bash-3.2$ svn log ------------------------------------------------------------------------ r2 | arno | 2014-11-12 15:54:27 +0000 (Wed, 12 Nov 2014) | 1 line Added recipe template ------------------------------------------------------------------------ r1 | www-data | 2014-08-26 21:22:14 +0100 (Tue, 26 Aug 2014) | 1 line Automatically created readme.textile and /trunk, /branches, /tags directories. We recommend you to put all your code there. ------------------------------------------------------------------------ bash-3.2$ ls -1 branches readme.textile recipe tags trunk bash-3.2$ cp recipe curry bash-3.2$ emacs curry bash-3.2$ svn status ? curry bash-3.2$ svn add curry A curry bash-3.2$ svn commit -m "Started the curry recipe and added onions" Adding curry Transmitting file data . Committed revision 3. bash-3.2$ svn log ------------------------------------------------------------------------ r2 | arno | 2014-11-12 15:54:27 +0000 (Wed, 12 Nov 2014) | 1 line Added recipe template ------------------------------------------------------------------------ r1 | www-data | 2014-08-26 21:22:14 +0100 (Tue, 26 Aug 2014) | 1 line Automatically created readme.textile and /trunk, /branches, /tags directories. We recommend you to put all your code there. ------------------------------------------------------------------------ bash-3.2$ svn update Updating '.': At revision 3. bash-3.2$ emacs curry bash-3.2$ svn status M curry bash-3.2$ svn commit -m "Added garlic" Sending curry Transmitting file data . Committed revision 4. bash-3.2$ svn update Updating '.': At revision 4. bash-3.2$ svn log ------------------------------------------------------------------------ r4 | arno | 2014-11-12 16:00:20 +0000 (Wed, 12 Nov 2014) | 1 line Added garlic ------------------------------------------------------------------------ r3 | arno | 2014-11-12 15:59:12 +0000 (Wed, 12 Nov 2014) | 1 line Started the curry recipe and added onions ------------------------------------------------------------------------ r2 | arno | 2014-11-12 15:54:27 +0000 (Wed, 12 Nov 2014) | 1 line Added recipe template ------------------------------------------------------------------------ r1 | www-data | 2014-08-26 21:22:14 +0100 (Tue, 26 Aug 2014) | 1 line Automatically created readme.textile and /trunk, /branches, /tags directories. We recommend you to put all your code there. ------------------------------------------------------------------------ bash-3.2$ svn diff -c 3 Index: curry =================================================================== --- curry (revision 0) +++ curry (revision 3) @@ -0,0 +1,8 @@ +Ingredients +---------- +Onions + + + +Preparation +----------- \ No newline at end of file bash-3.2$ svn diff -c 4 Index: curry =================================================================== --- curry (revision 3) +++ curry (revision 4) @@ -1,8 +1,8 @@ Ingredients ---------- Onions +Garlic - Preparation ----------- \ No newline at end of file bash-3.2$ emacs curry bash-3.2$ svn commit -m "Added some heat" Sending curry Transmitting file data . Committed revision 5. bash-3.2$ emacs curry bash-3.2$ svn commit -m "Added cumin" Sending curry Transmitting file data .svn: E155011: Commit failed (details follow): svn: E155011: File '/Users/arno/repositories/svn/archer-cookbook/curry' is out of date svn: E170004: Item '/curry' is out of date bash-3.2$ svn update Updating '.': Conflict discovered in '/Users/arno/repositories/svn/archer-cookbook/curry'. Select: (p) postpone, (df) diff-full, (e) edit, (mc) mine-conflict, (tc) theirs-conflict, (s) show all options: s (e) edit - change merged file in an editor (df) diff-full - show all changes made to merged file (r) resolved - accept merged version of file (dc) display-conflict - show all conflicts (ignoring merged version) (mc) mine-conflict - accept my version for all conflicts (same) (tc) theirs-conflict - accept their version for all conflicts (same) (mf) mine-full - accept my version of entire file (even non-conflicts) (tf) theirs-full - accept their version of entire file (same) (p) postpone - mark the conflict to be resolved later (l) launch - launch external tool to resolve conflict (s) show all - show this list Select: (p) postpone, (df) diff-full, (e) edit, (mc) mine-conflict, (tc) theirs-conflict, (s) show all options: dc @@ Onions Garlic Chilli <<<<<<< MINE (select with 'mc') (6) Cumin seeds ||||||| ORIGINAL (6,0) ======= Ginger >>>>>>> THEIRS (select with 'tc') (6) Preparation -----------Select: (p) postpone, (df) diff-full, (e) edit, (r) resolved, (mc) mine-conflict, (tc) theirs-conflict, (s) show all options: p C curry Updated to revision 6. Summary of conflicts: Text conflicts: 1 bash-3.2$ ls branches curry.r5 readme.textile trunk curry curry.r6 recipe curry.mine curry~ tags bash-3.2$ rm *~ bash-3.2$ ls branches curry.r5 recipe curry curry.r6 tags curry.mine readme.textile trunk bash-3.2$ cat curry.r6 Ingredients ---------- Onions Garlic Chilli Ginger Preparation -----------bash-3.2$ cat curry.r5 Ingredients ---------- Onions Garlic Chilli Preparation -----------bash-3.2$ cat curry.mine Ingredients ---------- Onions Garlic Chilli Cumin seeds Preparation -----------bash-3.2$ cat curry Ingredients ---------- Onions Garlic Chilli <<<<<<< .mine Cumin seeds ======= Ginger >>>>>>> .r6 Preparation ----------emacs curry bash-3.2$ svn help resolve resolve: Resolve conflicts on working copy files or directories. usage: resolve --accept=ARG [PATH...] Note: the --accept option is currently required. Valid options: --targets ARG : pass contents of file ARG as additional args -R [--recursive] : descend recursively, same as --depth=infinity --depth ARG : limit operation by depth ARG ('empty', 'files', 'immediates', or 'infinity') -q [--quiet] : print nothing, or only summary information --accept ARG : specify automatic conflict resolution source ('base', 'working', 'mine-conflict', 'theirs-conflict', 'mine-full', 'theirs-full') Global options: --username ARG : specify a username ARG --password ARG : specify a password ARG --no-auth-cache : do not cache authentication tokens --non-interactive : do no interactive prompting --trust-server-cert : accept SSL server certificates from unknown certificate authorities without prompting (but only with '--non-interactive') --config-dir ARG : read user configuration files from directory ARG --config-option ARG : set user configuration option in the format: FILE:SECTION:OPTION=[VALUE] For example: servers:global:http-library=serf bash-3.2$ svn resolve --accept working curry bash-3.2$ svn status M curry bash-3.2$ svn commit -m "Resolved ginger - cumin seeds conflict" Sending curry Transmitting file data . Committed revision 7. bash-3.2$ svn update Updating '.': At revision 7. bash-3.2$ svn log ------------------------------------------------------------------------ r7 | arno | 2014-11-12 16:16:00 +0000 (Wed, 12 Nov 2014) | 1 line Resolved ginger - cumin seeds conflict ------------------------------------------------------------------------ r6 | david | 2014-11-12 16:06:59 +0000 (Wed, 12 Nov 2014) | 1 line Added some ginger ------------------------------------------------------------------------ r5 | arno | 2014-11-12 16:05:27 +0000 (Wed, 12 Nov 2014) | 1 line Added some heat ------------------------------------------------------------------------ r4 | arno | 2014-11-12 16:00:20 +0000 (Wed, 12 Nov 2014) | 1 line Added garlic ------------------------------------------------------------------------ r3 | arno | 2014-11-12 15:59:12 +0000 (Wed, 12 Nov 2014) | 1 line Started the curry recipe and added onions ------------------------------------------------------------------------ r2 | arno | 2014-11-12 15:54:27 +0000 (Wed, 12 Nov 2014) | 1 line Added recipe template ------------------------------------------------------------------------ r1 | www-data | 2014-08-26 21:22:14 +0100 (Tue, 26 Aug 2014) | 1 line Automatically created readme.textile and /trunk, /branches, /tags directories. We recommend you to put all your code there. ------------------------------------------------------------------------ bash-3.2$ ls branches readme.textile tags curry recipe trunk bash-3.2$ mv recipe trunk/ bash-3.2$ svn status ! recipe ? trunk/recipe bash-3.2$ svn help status status (stat, st): Print the status of working copy files and directories. usage: status [PATH...] With no args, print only locally modified items (no network access). With -q, print only summary information about locally modified items. With -u, add working revision and server out-of-date information. With -v, print full revision information on every item. The first seven columns in the output are each one character wide: First column: Says if item was added, deleted, or otherwise changed ' ' no modifications 'A' Added 'C' Conflicted 'D' Deleted 'I' Ignored 'M' Modified 'R' Replaced 'X' an unversioned directory created by an externals definition '?' item is not under version control '!' item is missing (removed by non-svn command) or incomplete '~' versioned item obstructed by some item of a different kind Second column: Modifications of a file's or directory's properties ' ' no modifications 'C' Conflicted 'M' Modified Third column: Whether the working copy directory is locked ' ' not locked 'L' locked Fourth column: Scheduled commit will contain addition-with-history ' ' no history scheduled with commit '+' history scheduled with commit Fifth column: Whether the item is switched or a file external ' ' normal 'S' the item has a Switched URL relative to the parent 'X' a versioned file created by an eXternals definition Sixth column: Repository lock token (without -u) ' ' no lock token 'K' lock token present (with -u) ' ' not locked in repository, no lock token 'K' locked in repository, lock toKen present 'O' locked in repository, lock token in some Other working copy 'T' locked in repository, lock token present but sTolen 'B' not locked in repository, lock token present but Broken Seventh column: Whether the item is the victim of a tree conflict ' ' normal 'C' tree-Conflicted If the item is a tree conflict victim, an additional line is printed after the item's status line, explaining the nature of the conflict. The out-of-date information appears in the ninth column (with -u): '*' a newer revision exists on the server ' ' the working copy is up to date Remaining fields are variable width and delimited by spaces: The working revision (with -u or -v; '-' if the item is copied) The last committed revision and last committed author (with -v) The working copy path is always the final field, so it can include spaces. The presence of a question mark ('?') where a working revision, last committed revision, or last committed author was expected indicates that the information is unknown or irrelevant given the state of the item (for example, when the item is the result of a copy operation). The question mark serves as a visual placeholder to facilitate parsing. Example output: svn status wc M wc/bar.c A + wc/qax.c svn status -u wc M 965 wc/bar.c * 965 wc/foo.c A + - wc/qax.c Status against revision: 981 svn status --show-updates --verbose wc M 965 938 kfogel wc/bar.c * 965 922 sussman wc/foo.c A + - 687 joe wc/qax.c 965 687 joe wc/zig.c Status against revision: 981 svn status M wc/bar.c ! C wc/qaz.c > local missing, incoming edit upon update D wc/qax.c Valid options: -u [--show-updates] : display update information -v [--verbose] : print extra information -N [--non-recursive] : obsolete; try --depth=files or --depth=immediates --depth ARG : limit operation by depth ARG ('empty', 'files', 'immediates', or 'infinity') -q [--quiet] : don't print unversioned items --no-ignore : disregard default and svn:ignore property ignores --incremental : give output suitable for concatenation --xml : output in XML --ignore-externals : ignore externals definitions --changelist [--cl] ARG : operate only on members of changelist ARG Global options: --username ARG : specify a username ARG --password ARG : specify a password ARG --no-auth-cache : do not cache authentication tokens --non-interactive : do no interactive prompting --trust-server-cert : accept SSL server certificates from unknown certificate authorities without prompting (but only with '--non-interactive') --config-dir ARG : read user configuration files from directory ARG --config-option ARG : set user configuration option in the format: FILE:SECTION:OPTION=[VALUE] For example: servers:global:http-library=serf bash-3.2$ svn help revert revert: Restore pristine working copy file (undo most local edits). usage: revert PATH... Note: this subcommand does not require network access, and resolves any conflicted states. Valid options: --targets ARG : pass contents of file ARG as additional args -R [--recursive] : descend recursively, same as --depth=infinity --depth ARG : limit operation by depth ARG ('empty', 'files', 'immediates', or 'infinity') -q [--quiet] : print nothing, or only summary information --changelist [--cl] ARG : operate only on members of changelist ARG Global options: --username ARG : specify a username ARG --password ARG : specify a password ARG --no-auth-cache : do not cache authentication tokens --non-interactive : do no interactive prompting --trust-server-cert : accept SSL server certificates from unknown certificate authorities without prompting (but only with '--non-interactive') --config-dir ARG : read user configuration files from directory ARG --config-option ARG : set user configuration option in the format: FILE:SECTION:OPTION=[VALUE] For example: servers:global:http-library=serf bash-3.2$ svn revert . bash-3.2$ svn status ! recipe ? trunk/recipe bash-3.2$ svn revert -R . Reverted 'recipe' bash-3.2$ ls re readme.textile recipe bash-3.2$ ls branches readme.textile tags curry recipe trunk bash-3.2$ svn status ? trunk/recipe bash-3.2$ rm trunk/recipe bash-3.2$ svn status bash-3.2$ svn mv recipe trunk/ A trunk/recipe D recipe bash-3.2$ svn status D recipe A + trunk/recipe bash-3.2$ svn commit -m "Moved recipe template to trunk" Deleting recipe Adding trunk/recipe Committed revision 8. bash-3.2$ pwd /Users/arno/repositories/svn/archer-cookbook bash-3.2$ ls .svn/ entries format pristine/ tmp/ wc.db bash-3.2$ ls .svn/ entries pristine wc.db format tmp