diff tests/test-largefiles.t @ 16516:597ddcb41b32 stable

largefiles: notice dirty large files in a subrepo Summary and commit use dirty() to check the status of a subrepository, so this overrides dirty() in the subrepo in the same manner as status() to check the large files instead of their standins. Previously, if only a large file was changed in a subrepo, summary in the top level repo would not report the subrepo was dirty and commit -S would report nothing changed. If any type of file was changed in the top repo and only a large file in the subrepo, commit -S would not commit the changes to the subrepo.
author Matt Harbison <matt_harbison@yahoo.com>
date Sun, 22 Apr 2012 13:19:22 -0400
parents 12dabc22de77
children bb3334806ace
line wrap: on
line diff
--- a/tests/test-largefiles.t	Sun Apr 22 03:47:34 2012 -0400
+++ b/tests/test-largefiles.t	Sun Apr 22 13:19:22 2012 -0400
@@ -1060,19 +1060,40 @@
   ? .hgsubstate
   $ echo "rev 1" > subrepo/large.txt
   $ hg -R subrepo add --large subrepo/large.txt
+  $ hg sum
+  parent: 1:8ee150ea2e9c tip
+   add subrepo
+  branch: default
+  commit: 1 subrepos
+  update: (current)
   $ hg st
   $ hg st -S
   A subrepo/large.txt
-# This is a workaround for not noticing the subrepo is dirty
-  $ hg -R subrepo ci -m "commit large file"
+  $ hg ci -S -m "commit top repo"
+  committing subrepository subrepo
   Invoking status precommit hook
   A large.txt
-  $ hg ci -S -m "commit top repo"
   Invoking status precommit hook
   M .hgsubstate
+# No differences
   $ hg st -S
+  $ hg sum
+  parent: 2:ce4cd0c527a6 tip
+   commit top repo
+  branch: default
+  commit: (clean)
+  update: (current)
   $ echo "rev 2" > subrepo/large.txt
   $ hg st -S
   M subrepo/large.txt
- 
+  $ hg sum
+  parent: 2:ce4cd0c527a6 tip
+   commit top repo
+  branch: default
+  commit: 1 subrepos
+  update: (current)
+  $ hg ci -m "this commit should fail without -S"
+  abort: uncommitted changes in subrepo subrepo
+  (use --subrepos for recursive commit)
+  [255]
   $ cd ..