+#!/bin/sh
+#
+# Copyright (c) 2006 Catalin Marinas
+#
+
+test_description='Test the uncommit command.
+
+'
+
+. ./test-lib.sh
+
+test_expect_success \
+ 'Initialize the StGIT repository' \
+ 'stg init
+'
+
+test_expect_success \
+ 'Create the first patch' \
+ '
+ stg new foo -m "Foo Patch" &&
+ echo foo > test &&
+ stg add test &&
+ stg refresh
+ '
+
+test_expect_success \
+ 'Create the second patch' \
+ '
+ stg new bar -m "Bar Patch" &&
+ echo bar > test &&
+ stg add test &&
+ stg refresh
+ '
+
+test_expect_success \
+ 'Commit the patches' \
+ '
+ stg commit
+ '
+
+test_expect_success \
+ 'Uncommit the patches using names' \
+ '
+ stg uncommit bar foo &&
+ [ "$(stg id foo//top)" == "$(stg id bar//bottom)" ] &&
+ stg commit
+ '
+
+test_expect_success \
+ 'Uncommit the patches using prefix' \
+ '
+ stg uncommit --number=2 foobar &&
+ [ "$(stg id foobar1//top)" == "$(stg id foobar2//bottom)" ] &&
+ stg commit
+ '
+
+test_expect_success \
+ 'Uncommit the patches using auto names' \
+ '
+ stg uncommit --number=2 &&
+ [ "$(stg id foo-patch//top)" == "$(stg id bar-patch//bottom)" ] &&
+ stg commit
+ '
+
+test_expect_success \
+ 'Uncommit the patches one by one' \
+ '
+ stg uncommit &&
+ stg uncommit &&
+ [ "$(stg id foo-patch//top)" == "$(stg id bar-patch//bottom)" ] &&
+ stg commit
+ '
+test_done