You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ju...@apache.org on 2018/01/22 13:16:21 UTC

svn commit: r1821862 - in /subversion/trunk: subversion/svn/ subversion/tests/cmdline/ subversion/tests/cmdline/getopt_tests_data/ tools/client-side/

Author: julianfoad
Date: Mon Jan 22 13:16:21 2018
New Revision: 1821862

URL: http://svn.apache.org/viewvc?rev=1821862&view=rev
Log:
Make trunk run Shelving v2 by default.

Update the tests and Bash-completion from the 'shelve-checkpoint' branch.
Keep the v1 APIs and a compile-time option to use the v1 CLI.

* subversion/svn/svn.c
  (WITH_SHELVE_V1): Undefine.

* subversion/tests/cmdline/getopt_tests_data/svn_help_stdout,
  subversion/tests/cmdline/getopt_tests_data/svn--help_stdout
  Update.

* subversion/tests/cmdline/shelf_tests.py
  Rename from 'shelf_tests.py'.
  (checkpoint_basic): New test.
  (test_list): Run it.

* tools/client-side/bash_completion
  (_svn): Update.

Added:
    subversion/trunk/subversion/tests/cmdline/shelf_tests.py
      - copied, changed from r1821861, subversion/trunk/subversion/tests/cmdline/shelve_tests.py
Removed:
    subversion/trunk/subversion/tests/cmdline/shelve_tests.py
Modified:
    subversion/trunk/subversion/svn/svn.c
    subversion/trunk/subversion/tests/cmdline/getopt_tests_data/svn--help_stdout
    subversion/trunk/subversion/tests/cmdline/getopt_tests_data/svn_help_stdout
    subversion/trunk/tools/client-side/bash_completion

Modified: subversion/trunk/subversion/svn/svn.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/svn.c?rev=1821862&r1=1821861&r2=1821862&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/svn.c (original)
+++ subversion/trunk/subversion/svn/svn.c Mon Jan 22 13:16:21 2018
@@ -61,7 +61,7 @@
 #include "svn_private_config.h"
 
 
-#define WITH_SHELVE_V1
+/*#define WITH_SHELVE_V1*/
 
 /*** Option Processing ***/
 

Modified: subversion/trunk/subversion/tests/cmdline/getopt_tests_data/svn--help_stdout
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/getopt_tests_data/svn--help_stdout?rev=1821862&r1=1821861&r2=1821862&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/getopt_tests_data/svn--help_stdout (original)
+++ subversion/trunk/subversion/tests/cmdline/getopt_tests_data/svn--help_stdout Mon Jan 22 13:16:21 2018
@@ -42,9 +42,13 @@ Available subcommands:
    resolve
    resolved
    revert
+   shelf-diff
+   shelf-drop
+   shelf-list (shelves)
+   shelf-log
+   shelf-save
    shelve
    unshelve
-   shelves
    status (stat, st)
    switch (sw)
    unlock

Modified: subversion/trunk/subversion/tests/cmdline/getopt_tests_data/svn_help_stdout
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/getopt_tests_data/svn_help_stdout?rev=1821862&r1=1821861&r2=1821862&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/getopt_tests_data/svn_help_stdout (original)
+++ subversion/trunk/subversion/tests/cmdline/getopt_tests_data/svn_help_stdout Mon Jan 22 13:16:21 2018
@@ -42,9 +42,13 @@ Available subcommands:
    resolve
    resolved
    revert
+   shelf-diff
+   shelf-drop
+   shelf-list (shelves)
+   shelf-log
+   shelf-save
    shelve
    unshelve
-   shelves
    status (stat, st)
    switch (sw)
    unlock

Copied: subversion/trunk/subversion/tests/cmdline/shelf_tests.py (from r1821861, subversion/trunk/subversion/tests/cmdline/shelve_tests.py)
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/shelf_tests.py?p2=subversion/trunk/subversion/tests/cmdline/shelf_tests.py&p1=subversion/trunk/subversion/tests/cmdline/shelve_tests.py&r1=1821861&r2=1821862&rev=1821862&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/shelve_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/shelf_tests.py Mon Jan 22 13:16:21 2018
@@ -156,6 +156,66 @@ def shelve_from_inner_path(sbox):
 
 #----------------------------------------------------------------------
 
+def state_from_status(wc_dir):
+  _, output, _ = svntest.main.run_svn(None, 'status', '-v', '-u', '-q',
+                                      wc_dir)
+  return svntest.wc.State.from_status(output, wc_dir)
+
+def save_revert_restore(sbox, modifier1, modifier2):
+  "Save 2 checkpoints; revert; restore 1st"
+
+  sbox.build()
+  was_cwd = os.getcwd()
+  os.chdir(sbox.wc_dir)
+  sbox.wc_dir = ''
+  wc_dir = ''
+
+  # Make some changes to the working copy
+  modifier1(sbox)
+
+  # Remember the modified state
+  modified_state1 = state_from_status(wc_dir)
+
+  # Save a checkpoint; check nothing changed
+  svntest.actions.run_and_verify_svn(None, [],
+                                     'shelf-save', 'foo')
+  svntest.actions.run_and_verify_status(wc_dir, modified_state1)
+
+  # Modify again; remember the state; save a checkpoint
+  modifier2(sbox)
+  modified_state2 = state_from_status(wc_dir)
+  svntest.actions.run_and_verify_svn(None, [],
+                                     'shelf-save', 'foo')
+  svntest.actions.run_and_verify_status(wc_dir, modified_state2)
+
+  # Revert
+  svntest.actions.run_and_verify_svn(None, [],
+                                     'revert', '-R', '.')
+  virginal_state = svntest.actions.get_virginal_state(wc_dir, 1)
+  svntest.actions.run_and_verify_status(wc_dir, virginal_state)
+
+  # Restore; check the original modifications are here again
+  svntest.actions.run_and_verify_svn(None, [],
+                                     'unshelve', 'foo', '1')
+  svntest.actions.run_and_verify_status(wc_dir, modified_state1)
+
+  os.chdir(was_cwd)
+
+#----------------------------------------------------------------------
+
+def checkpoint_basic(sbox):
+  "checkpoint basic"
+
+  def modifier1(sbox):
+    sbox.simple_append('A/mu', 'appended mu text\n')
+
+  def modifier2(sbox):
+    sbox.simple_append('iota', 'appended iota text\n')
+    sbox.simple_append('A/mu', 'appended another line\n')
+
+  save_revert_restore(sbox, modifier1, modifier2)
+
+
 ########################################################################
 # Run the tests
 
@@ -166,6 +226,7 @@ test_list = [ None,
               shelve_adds,
               shelve_deletes,
               shelve_from_inner_path,
+              checkpoint_basic,
              ]
 
 if __name__ == '__main__':

Modified: subversion/trunk/tools/client-side/bash_completion
URL: http://svn.apache.org/viewvc/subversion/trunk/tools/client-side/bash_completion?rev=1821862&r1=1821861&r2=1821862&view=diff
==============================================================================
--- subversion/trunk/tools/client-side/bash_completion (original)
+++ subversion/trunk/tools/client-side/bash_completion Mon Jan 22 13:16:21 2018
@@ -248,6 +248,7 @@ _svn()
 	cmds="$cmds patch propdel pdel propedit pedit propget pget proplist"
 	cmds="$cmds plist propset pset relocate resolve resolved revert status"
 	cmds="$cmds switch unlock update upgrade"
+	cmds="$cmds shelf-diff shelf-drop shelf-list shelf-log shelf-save"
 	cmds="$cmds shelve shelves unshelve"
 
 	# help options have a strange command status...
@@ -1022,15 +1023,34 @@ _svn()
 	upgrade)
 		cmdOpts="$qOpts $pOpts"
 		;;
-	shelve)
-		cmdOpts="$qOpts --keep-local --delete --list -m --message -F --file --encoding --force-log --editor-cmd --dry-run --depth --targets $cOpts $pOpts"
+	shelf-diff)
+		cmdOpts="$pOpts"
 		;;
-	unshelve)
-		cmdOpts="$qOpts --keep-shelved --list --dry-run $pOpts"
+	shelf-drop)
+		cmdOpts="$pOpts"
 		;;
-	shelves)
+	shelf-list|shelves)
 		cmdOpts="$qOpts $pOpts"
 		;;
+	shelf-log)
+		cmdOpts="$qOpts $pOpts"
+		;;
+	shelf-save)
+		cmdOpts="--dry-run \
+                         --depth --targets $cOpts \
+                         -m --message -F --file --encoding --force-log --editor-cmd \
+                         $qOpts $pOpts"
+		;;
+	shelve)
+		cmdOpts="--keep-local --dry-run \
+                         --depth --targets $cOpts \
+                         -m --message -F --file --encoding --force-log --editor-cmd \
+                         $qOpts $pOpts"
+		;;
+	unshelve)
+		cmdOpts="--dry-run \
+                         $qOpts $pOpts"
+		;;
 	*)
 		;;
 	esac