Show More
@@ -187,3 +187,4 b' a4e32fd539ab41489a51b2aa88bda9a73b839562' | |||||
187 | 181e52f2b62f4768aa0d988936c929dc7c4a41a0 0 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 |
@@ -200,3 +200,4 b' a4e32fd539ab41489a51b2aa88bda9a73b839562' | |||||
200 | 181e52f2b62f4768aa0d988936c929dc7c4a41a0 5.1.2 |
|
200 | 181e52f2b62f4768aa0d988936c929dc7c4a41a0 5.1.2 | |
201 | 59338f9561099de77c684c00f76507f11e46ebe8 5.2rc0 |
|
201 | 59338f9561099de77c684c00f76507f11e46ebe8 5.2rc0 | |
202 | ca3dca416f8d5863ca6f5a4a6a6bb835dcd5feeb 5.2 |
|
202 | ca3dca416f8d5863ca6f5a4a6a6bb835dcd5feeb 5.2 | |
|
203 | a50fecefa691c9b72a99e49aa6fe9dd13943c2bf 5.2.1 |
@@ -115,7 +115,7 b' def parseoptions(ui, cmdoptions, args):' | |||||
115 | args = list([convert(x) for x in args]) |
|
115 | args = list([convert(x) for x in args]) | |
116 | opts = dict( |
|
116 | opts = dict( | |
117 | [ |
|
117 | [ | |
118 |
(k, convert(v)) if isinstance(v, |
|
118 | (k, convert(v)) if isinstance(v, bytes) else (k, v) | |
119 | for k, v in pycompat.iteritems(opts) |
|
119 | for k, v in pycompat.iteritems(opts) | |
120 | ] |
|
120 | ] | |
121 | ) |
|
121 | ) |
@@ -2603,7 +2603,7 b' def cleanupnode(ui, repo, nodes, nobacku' | |||||
2603 |
|
2603 | |||
2604 |
|
2604 | |||
2605 | def stripwrapper(orig, ui, repo, nodelist, *args, **kwargs): |
|
2605 | def stripwrapper(orig, ui, repo, nodelist, *args, **kwargs): | |
2606 |
if isinstance(nodelist, |
|
2606 | if isinstance(nodelist, bytes): | |
2607 | nodelist = [nodelist] |
|
2607 | nodelist = [nodelist] | |
2608 | state = histeditstate(repo) |
|
2608 | state = histeditstate(repo) | |
2609 | if state.inprogress(): |
|
2609 | if state.inprogress(): |
@@ -77,7 +77,7 b' configitem(' | |||||
77 |
|
77 | |||
78 |
|
78 | |||
79 | def decode(arg): |
|
79 | def decode(arg): | |
80 |
if isinstance(arg, |
|
80 | if isinstance(arg, bytes): | |
81 | uarg = arg.decode(_encoding) |
|
81 | uarg = arg.decode(_encoding) | |
82 | if arg == uarg.encode(_encoding): |
|
82 | if arg == uarg.encode(_encoding): | |
83 | return uarg |
|
83 | return uarg |
@@ -191,7 +191,7 b' def staticfile(directory, fname, res):' | |||||
191 | return |
|
191 | return | |
192 |
|
192 | |||
193 | fpath = os.path.join(*fname.split(b'/')) |
|
193 | fpath = os.path.join(*fname.split(b'/')) | |
194 |
if isinstance(directory, |
|
194 | if isinstance(directory, bytes): | |
195 | directory = [directory] |
|
195 | directory = [directory] | |
196 | for d in directory: |
|
196 | for d in directory: | |
197 | path = os.path.join(d, fpath) |
|
197 | path = os.path.join(d, fpath) |
@@ -413,7 +413,7 b' class hgwebdir(object):' | |||||
413 | static = self.ui.config(b"web", b"static", untrusted=False) |
|
413 | static = self.ui.config(b"web", b"static", untrusted=False) | |
414 | if not static: |
|
414 | if not static: | |
415 | tp = self.templatepath or templater.templatepaths() |
|
415 | tp = self.templatepath or templater.templatepaths() | |
416 |
if isinstance(tp, |
|
416 | if isinstance(tp, bytes): | |
417 | tp = [tp] |
|
417 | tp = [tp] | |
418 | static = [os.path.join(p, b'static') for p in tp] |
|
418 | static = [os.path.join(p, b'static') for p in tp] | |
419 |
|
419 |
@@ -1321,7 +1321,7 b' def static(web):' | |||||
1321 | static = web.config(b"web", b"static", untrusted=False) |
|
1321 | static = web.config(b"web", b"static", untrusted=False) | |
1322 | if not static: |
|
1322 | if not static: | |
1323 | tp = web.templatepath or templater.templatepaths() |
|
1323 | tp = web.templatepath or templater.templatepaths() | |
1324 |
if isinstance(tp, |
|
1324 | if isinstance(tp, bytes): | |
1325 | tp = [tp] |
|
1325 | tp = [tp] | |
1326 | static = [os.path.join(p, b'static') for p in tp] |
|
1326 | static = [os.path.join(p, b'static') for p in tp] | |
1327 |
|
1327 |
@@ -873,7 +873,7 b' class sessionvars(templateutil.wrapped):' | |||||
873 | raise error.ParseError(_(b'not displayable without template')) |
|
873 | raise error.ParseError(_(b'not displayable without template')) | |
874 |
|
874 | |||
875 | def show(self, context, mapping): |
|
875 | def show(self, context, mapping): | |
876 | return self.join(context, b'') |
|
876 | return self.join(context, mapping, b'') | |
877 |
|
877 | |||
878 | def tobool(self, context, mapping): |
|
878 | def tobool(self, context, mapping): | |
879 | return bool(self._vars) |
|
879 | return bool(self._vars) |
@@ -945,6 +945,8 b' def getlinerangerevs(repo, userrevs, opt' | |||||
945 | fctx = wctx.filectx(fname) |
|
945 | fctx = wctx.filectx(fname) | |
946 | for fctx, linerange in dagop.blockancestors(fctx, fromline, toline): |
|
946 | for fctx, linerange in dagop.blockancestors(fctx, fromline, toline): | |
947 | rev = fctx.introrev() |
|
947 | rev = fctx.introrev() | |
|
948 | if rev is None: | |||
|
949 | rev = wdirrev | |||
948 | if rev not in userrevs: |
|
950 | if rev not in userrevs: | |
949 | continue |
|
951 | continue | |
950 | linerangesbyrev.setdefault(rev, {}).setdefault( |
|
952 | linerangesbyrev.setdefault(rev, {}).setdefault( | |
@@ -955,7 +957,7 b' def getlinerangerevs(repo, userrevs, opt' | |||||
955 | return hunks |
|
957 | return hunks | |
956 |
|
958 | |||
957 | def hunksfilter(ctx): |
|
959 | def hunksfilter(ctx): | |
958 |
fctxlineranges = linerangesbyrev.get(ctx |
|
960 | fctxlineranges = linerangesbyrev.get(scmutil.intrev(ctx)) | |
959 | if fctxlineranges is None: |
|
961 | if fctxlineranges is None: | |
960 | return nofilterhunksfn |
|
962 | return nofilterhunksfn | |
961 |
|
963 | |||
@@ -975,7 +977,7 b' def getlinerangerevs(repo, userrevs, opt' | |||||
975 | return filterfn |
|
977 | return filterfn | |
976 |
|
978 | |||
977 | def filematcher(ctx): |
|
979 | def filematcher(ctx): | |
978 |
files = list(linerangesbyrev.get(ctx |
|
980 | files = list(linerangesbyrev.get(scmutil.intrev(ctx), [])) | |
979 | return scmutil.matchfiles(repo, files) |
|
981 | return scmutil.matchfiles(repo, files) | |
980 |
|
982 | |||
981 | revs = sorted(linerangesbyrev, reverse=True) |
|
983 | revs = sorted(linerangesbyrev, reverse=True) |
@@ -183,7 +183,7 b' def ctxpvec(ctx):' | |||||
183 |
|
183 | |||
184 | class pvec(object): |
|
184 | class pvec(object): | |
185 | def __init__(self, hashorctx): |
|
185 | def __init__(self, hashorctx): | |
186 |
if isinstance(hashorctx, |
|
186 | if isinstance(hashorctx, bytes): | |
187 | self._bs = hashorctx |
|
187 | self._bs = hashorctx | |
188 | self._depth, self._vec = _split(util.b85decode(hashorctx)) |
|
188 | self._depth, self._vec = _split(util.b85decode(hashorctx)) | |
189 | else: |
|
189 | else: |
@@ -131,7 +131,7 b' def strip(ui, repo, nodelist, backup=Tru' | |||||
131 | cl = repo.changelog |
|
131 | cl = repo.changelog | |
132 |
|
132 | |||
133 | # TODO handle undo of merge sets |
|
133 | # TODO handle undo of merge sets | |
134 |
if isinstance(nodelist, |
|
134 | if isinstance(nodelist, bytes): | |
135 | nodelist = [nodelist] |
|
135 | nodelist = [nodelist] | |
136 | striplist = [cl.rev(node) for node in nodelist] |
|
136 | striplist = [cl.rev(node) for node in nodelist] | |
137 | striprev = min(striplist) |
|
137 | striprev = min(striplist) |
@@ -38,7 +38,7 b' def systemrcpath():' | |||||
38 | value = util.lookupreg( |
|
38 | value = util.lookupreg( | |
39 | b'SOFTWARE\\Mercurial', None, winreg.HKEY_LOCAL_MACHINE |
|
39 | b'SOFTWARE\\Mercurial', None, winreg.HKEY_LOCAL_MACHINE | |
40 | ) |
|
40 | ) | |
41 |
if not isinstance(value, |
|
41 | if not isinstance(value, bytes) or not value: | |
42 | return rcpath |
|
42 | return rcpath | |
43 | value = util.localpath(value) |
|
43 | value = util.localpath(value) | |
44 | for p in value.split(pycompat.ospathsep): |
|
44 | for p in value.split(pycompat.ospathsep): |
@@ -264,6 +264,10 b' githelp for reuse message using the the ' | |||||
264 | $ hg githelp -- git commit --reuse-message deadbeef |
|
264 | $ hg githelp -- git commit --reuse-message deadbeef | |
265 | hg commit -M deadbeef |
|
265 | hg commit -M deadbeef | |
266 |
|
266 | |||
|
267 | githelp for reuse message using HEAD | |||
|
268 | $ hg githelp -- git commit --reuse-message HEAD~ | |||
|
269 | hg commit -M .~1 | |||
|
270 | ||||
267 | githelp for apply with no options |
|
271 | githelp for apply with no options | |
268 | $ hg githelp -- apply |
|
272 | $ hg githelp -- apply | |
269 | hg import --no-commit |
|
273 | hg import --no-commit |
@@ -868,6 +868,131 b' Renames are followed.' | |||||
868 | +4 |
|
868 | +4 | |
869 |
|
869 | |||
870 |
|
870 | |||
|
871 | Uncommitted changes with a rename | |||
|
872 | ||||
|
873 | $ hg mv baz bazn | |||
|
874 | $ hg log -f -L bazn,5:7 | |||
|
875 | changeset: 9:6af29c3a778f | |||
|
876 | tag: tip | |||
|
877 | user: test | |||
|
878 | date: Thu Jan 01 00:00:00 1970 +0000 | |||
|
879 | summary: foo -> dir/baz; 1-1+ | |||
|
880 | ||||
|
881 | changeset: 5:cfdf972b3971 | |||
|
882 | user: test | |||
|
883 | date: Thu Jan 01 00:00:00 1970 +0000 | |||
|
884 | summary: foo: 3 -> 3+ and 11+ -> 11-; bar: a -> a+ | |||
|
885 | ||||
|
886 | changeset: 4:eaec41c1a0c9 | |||
|
887 | user: test | |||
|
888 | date: Thu Jan 01 00:00:00 1970 +0000 | |||
|
889 | summary: 11 -> 11+; leading space before "1" | |||
|
890 | ||||
|
891 | changeset: 2:63a884426fd0 | |||
|
892 | user: test | |||
|
893 | date: Thu Jan 01 00:00:00 1970 +0000 | |||
|
894 | summary: 2 -> 2+; added bar | |||
|
895 | ||||
|
896 | changeset: 0:5ae1f82b9a00 | |||
|
897 | user: test | |||
|
898 | date: Thu Jan 01 00:00:00 1970 +0000 | |||
|
899 | summary: init | |||
|
900 | ||||
|
901 | ||||
|
902 | Uncommitted changes in requested line range | |||
|
903 | ||||
|
904 | $ sed 's/2/ /' bazn > bazn.new | |||
|
905 | $ mv bazn.new bazn | |||
|
906 | $ hg diff | |||
|
907 | diff --git a/dir/baz b/dir/bazn | |||
|
908 | rename from dir/baz | |||
|
909 | rename to dir/bazn | |||
|
910 | --- a/dir/baz | |||
|
911 | +++ b/dir/bazn | |||
|
912 | @@ -3,7 +3,7 @@ | |||
|
913 | 0 | |||
|
914 | 0 | |||
|
915 | 1+ | |||
|
916 | -2+ | |||
|
917 | + + | |||
|
918 | 3+ | |||
|
919 | 4 | |||
|
920 | 5 | |||
|
921 | $ hg log -f -L bazn,5:7 | |||
|
922 | changeset: 9:6af29c3a778f | |||
|
923 | tag: tip | |||
|
924 | user: test | |||
|
925 | date: Thu Jan 01 00:00:00 1970 +0000 | |||
|
926 | summary: foo -> dir/baz; 1-1+ | |||
|
927 | ||||
|
928 | changeset: 5:cfdf972b3971 | |||
|
929 | user: test | |||
|
930 | date: Thu Jan 01 00:00:00 1970 +0000 | |||
|
931 | summary: foo: 3 -> 3+ and 11+ -> 11-; bar: a -> a+ | |||
|
932 | ||||
|
933 | changeset: 4:eaec41c1a0c9 | |||
|
934 | user: test | |||
|
935 | date: Thu Jan 01 00:00:00 1970 +0000 | |||
|
936 | summary: 11 -> 11+; leading space before "1" | |||
|
937 | ||||
|
938 | changeset: 2:63a884426fd0 | |||
|
939 | user: test | |||
|
940 | date: Thu Jan 01 00:00:00 1970 +0000 | |||
|
941 | summary: 2 -> 2+; added bar | |||
|
942 | ||||
|
943 | changeset: 0:5ae1f82b9a00 | |||
|
944 | user: test | |||
|
945 | date: Thu Jan 01 00:00:00 1970 +0000 | |||
|
946 | summary: init | |||
|
947 | ||||
|
948 | ||||
|
949 | Uncommitted changes in line-range + wdir() | |||
|
950 | ||||
|
951 | $ hg log -r 'wdir()' -f -L bazn,5:7 --limit 2 -p | |||
|
952 | changeset: 2147483647:ffffffffffff | |||
|
953 | parent: 9:6af29c3a778f | |||
|
954 | user: test | |||
|
955 | date: Thu Jan 01 00:00:00 1970 +0000 | |||
|
956 | ||||
|
957 | diff --git a/dir/baz b/dir/bazn | |||
|
958 | copy from dir/baz | |||
|
959 | copy to dir/bazn | |||
|
960 | --- a/dir/baz | |||
|
961 | +++ b/dir/bazn | |||
|
962 | @@ -3,7 +3,7 @@ | |||
|
963 | 0 | |||
|
964 | 0 | |||
|
965 | 1+ | |||
|
966 | -2+ | |||
|
967 | + + | |||
|
968 | 3+ | |||
|
969 | 4 | |||
|
970 | 5 | |||
|
971 | ||||
|
972 | changeset: 9:6af29c3a778f | |||
|
973 | tag: tip | |||
|
974 | user: test | |||
|
975 | date: Thu Jan 01 00:00:00 1970 +0000 | |||
|
976 | summary: foo -> dir/baz; 1-1+ | |||
|
977 | ||||
|
978 | diff --git a/foo b/dir/baz | |||
|
979 | copy from foo | |||
|
980 | copy to dir/baz | |||
|
981 | --- a/foo | |||
|
982 | +++ b/dir/baz | |||
|
983 | @@ -2,7 +2,7 @@ | |||
|
984 | 0 | |||
|
985 | 0 | |||
|
986 | 0 | |||
|
987 | - 1 | |||
|
988 | + 1+ | |||
|
989 | 2+ | |||
|
990 | 3+ | |||
|
991 | 4 | |||
|
992 | ||||
|
993 | ||||
|
994 | $ hg revert -a -C -q | |||
|
995 | ||||
871 | Copies. |
|
996 | Copies. | |
872 |
|
997 | |||
873 | $ hg copy baz bbaz |
|
998 | $ hg copy baz bbaz |
@@ -72,7 +72,7 b' hg merge -r 2' | |||||
72 | override $PATH to ensure hgmerge not visible; use $PYTHON in case we're |
|
72 | override $PATH to ensure hgmerge not visible; use $PYTHON in case we're | |
73 | running from a devel copy, not a temp installation |
|
73 | running from a devel copy, not a temp installation | |
74 |
|
74 | |||
75 |
$ PATH=" |
|
75 | $ PATH="/usr/sbin" "$PYTHON" "$BINDIR"/hg merge -r 2 | |
76 | merging f |
|
76 | merging f | |
77 | warning: conflicts while merging f! (edit, then use 'hg resolve --mark') |
|
77 | warning: conflicts while merging f! (edit, then use 'hg resolve --mark') | |
78 | 0 files updated, 0 files merged, 0 files removed, 1 files unresolved |
|
78 | 0 files updated, 0 files merged, 0 files removed, 1 files unresolved | |
@@ -121,7 +121,7 b" unexecutable file in $PATH shouldn't be " | |||||
121 |
|
121 | |||
122 | $ echo "echo fail" > false |
|
122 | $ echo "echo fail" > false | |
123 | $ hg up -qC 1 |
|
123 | $ hg up -qC 1 | |
124 |
$ PATH="`pwd`: |
|
124 | $ PATH="`pwd`:/usr/sbin" "$PYTHON" "$BINDIR"/hg merge -r 2 | |
125 | merging f |
|
125 | merging f | |
126 | warning: conflicts while merging f! (edit, then use 'hg resolve --mark') |
|
126 | warning: conflicts while merging f! (edit, then use 'hg resolve --mark') | |
127 | 0 files updated, 0 files merged, 0 files removed, 1 files unresolved |
|
127 | 0 files updated, 0 files merged, 0 files removed, 1 files unresolved | |
@@ -135,7 +135,7 b" executable directory in $PATH shouldn't " | |||||
135 |
|
135 | |||
136 | $ mkdir false |
|
136 | $ mkdir false | |
137 | $ hg up -qC 1 |
|
137 | $ hg up -qC 1 | |
138 |
$ PATH="`pwd`: |
|
138 | $ PATH="`pwd`:/usr/sbin" "$PYTHON" "$BINDIR"/hg merge -r 2 | |
139 | merging f |
|
139 | merging f | |
140 | warning: conflicts while merging f! (edit, then use 'hg resolve --mark') |
|
140 | warning: conflicts while merging f! (edit, then use 'hg resolve --mark') | |
141 | 0 files updated, 0 files merged, 0 files removed, 1 files unresolved |
|
141 | 0 files updated, 0 files merged, 0 files removed, 1 files unresolved |
General Comments 0
You need to be logged in to leave comments.
Login now