Show More
@@ -361,6 +361,17 b' def listcmd(ui, repo, pats, opts):' | |||
|
361 | 361 | finally: |
|
362 | 362 | fp.close() |
|
363 | 363 | |
|
364 | def singlepatchcmds(ui, repo, pats, opts, subcommand): | |
|
365 | """subcommand that displays a single shelf""" | |
|
366 | if len(pats) != 1: | |
|
367 | raise util.Abort(_("--%s expects a single shelf") % subcommand) | |
|
368 | shelfname = pats[0] | |
|
369 | ||
|
370 | if not shelvedfile(repo, shelfname, 'patch').exists(): | |
|
371 | raise util.Abort(_("cannot find shelf %s") % shelfname) | |
|
372 | ||
|
373 | listcmd(ui, repo, pats, opts) | |
|
374 | ||
|
364 | 375 | def checkparents(repo, state): |
|
365 | 376 | """check parent while resuming an unshelve""" |
|
366 | 377 | if state.parents != repo.dirstate.parents(): |
@@ -699,8 +710,8 b' def shelvecmd(ui, repo, *pats, **opts):' | |||
|
699 | 710 | ('list', set(['list'])), |
|
700 | 711 | ('message', set(['create'])), |
|
701 | 712 | ('name', set(['create'])), |
|
702 | ('patch', set(['list'])), | |
|
703 | ('stat', set(['list'])), | |
|
713 | ('patch', set(['patch', 'list'])), | |
|
714 | ('stat', set(['stat', 'list'])), | |
|
704 | 715 | ] |
|
705 | 716 | def checkopt(opt): |
|
706 | 717 | if opts[opt]: |
@@ -717,11 +728,11 b' def shelvecmd(ui, repo, *pats, **opts):' | |||
|
717 | 728 | return deletecmd(ui, repo, pats) |
|
718 | 729 | elif checkopt('list'): |
|
719 | 730 | return listcmd(ui, repo, pats, opts) |
|
731 | elif checkopt('patch'): | |
|
732 | return singlepatchcmds(ui, repo, pats, opts, subcommand='patch') | |
|
733 | elif checkopt('stat'): | |
|
734 | return singlepatchcmds(ui, repo, pats, opts, subcommand='stat') | |
|
720 | 735 | else: |
|
721 | for i in ('patch', 'stat'): | |
|
722 | if opts[i]: | |
|
723 | raise util.Abort(_("option '--%s' may not be " | |
|
724 | "used when shelving a change") % (i,)) | |
|
725 | 736 | return createcmd(ui, repo, pats, opts) |
|
726 | 737 | |
|
727 | 738 | def extsetup(ui): |
@@ -862,4 +862,45 b' Test interactive shelve' | |||
|
862 | 862 | c |
|
863 | 863 | x |
|
864 | 864 | x |
|
865 | $ cd .. | |
|
865 | ||
|
866 | shelve --patch and shelve --stat should work with a single valid shelfname | |
|
867 | ||
|
868 | $ hg up --clean . | |
|
869 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
|
870 | $ hg shelve --list | |
|
871 | $ echo 'patch a' > shelf-patch-a | |
|
872 | $ hg add shelf-patch-a | |
|
873 | $ hg shelve | |
|
874 | shelved as default | |
|
875 | 0 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
|
876 | $ echo 'patch b' > shelf-patch-b | |
|
877 | $ hg add shelf-patch-b | |
|
878 | $ hg shelve | |
|
879 | shelved as default-01 | |
|
880 | 0 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
|
881 | $ hg shelve --patch default default-01 | |
|
882 | abort: --patch expects a single shelf | |
|
883 | [255] | |
|
884 | $ hg shelve --stat default default-01 | |
|
885 | abort: --stat expects a single shelf | |
|
886 | [255] | |
|
887 | $ hg shelve --patch default | |
|
888 | default (* ago) changes to 'create conflict' (glob) | |
|
889 | ||
|
890 | diff --git a/shelf-patch-a b/shelf-patch-a | |
|
891 | new file mode 100644 | |
|
892 | --- /dev/null | |
|
893 | +++ b/shelf-patch-a | |
|
894 | @@ -0,0 +1,1 @@ | |
|
895 | +patch a | |
|
896 | $ hg shelve --stat default | |
|
897 | default (* ago) changes to 'create conflict' (glob) | |
|
898 | shelf-patch-a | 1 + | |
|
899 | 1 files changed, 1 insertions(+), 0 deletions(-) | |
|
900 | $ hg shelve --patch nonexistentshelf | |
|
901 | abort: cannot find shelf nonexistentshelf | |
|
902 | [255] | |
|
903 | $ hg shelve --stat nonexistentshelf | |
|
904 | abort: cannot find shelf nonexistentshelf | |
|
905 | [255] | |
|
906 |
General Comments 0
You need to be logged in to leave comments.
Login now