Show More
@@ -930,6 +930,8 b' def getlinerangerevs(repo, userrevs, opt' | |||||
930 | fctx = wctx.filectx(fname) |
|
930 | fctx = wctx.filectx(fname) | |
931 | for fctx, linerange in dagop.blockancestors(fctx, fromline, toline): |
|
931 | for fctx, linerange in dagop.blockancestors(fctx, fromline, toline): | |
932 | rev = fctx.introrev() |
|
932 | rev = fctx.introrev() | |
|
933 | if rev is None: | |||
|
934 | rev = wdirrev | |||
933 | if rev not in userrevs: |
|
935 | if rev not in userrevs: | |
934 | continue |
|
936 | continue | |
935 | linerangesbyrev.setdefault(rev, {}).setdefault( |
|
937 | linerangesbyrev.setdefault(rev, {}).setdefault( | |
@@ -940,7 +942,7 b' def getlinerangerevs(repo, userrevs, opt' | |||||
940 | return hunks |
|
942 | return hunks | |
941 |
|
943 | |||
942 | def hunksfilter(ctx): |
|
944 | def hunksfilter(ctx): | |
943 |
fctxlineranges = linerangesbyrev.get(ctx |
|
945 | fctxlineranges = linerangesbyrev.get(scmutil.intrev(ctx)) | |
944 | if fctxlineranges is None: |
|
946 | if fctxlineranges is None: | |
945 | return nofilterhunksfn |
|
947 | return nofilterhunksfn | |
946 |
|
948 | |||
@@ -960,7 +962,7 b' def getlinerangerevs(repo, userrevs, opt' | |||||
960 | return filterfn |
|
962 | return filterfn | |
961 |
|
963 | |||
962 | def filematcher(ctx): |
|
964 | def filematcher(ctx): | |
963 |
files = list(linerangesbyrev.get(ctx |
|
965 | files = list(linerangesbyrev.get(scmutil.intrev(ctx), [])) | |
964 | return scmutil.matchfiles(repo, files) |
|
966 | return scmutil.matchfiles(repo, files) | |
965 |
|
967 | |||
966 | revs = sorted(linerangesbyrev, reverse=True) |
|
968 | revs = sorted(linerangesbyrev, reverse=True) |
@@ -898,6 +898,99 b' Uncommitted changes with a rename' | |||||
898 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
898 | date: Thu Jan 01 00:00:00 1970 +0000 | |
899 | summary: init |
|
899 | summary: init | |
900 |
|
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 | ||||
901 | $ hg revert -a -C -q |
|
994 | $ hg revert -a -C -q | |
902 |
|
995 | |||
903 | Binary files work but without diff hunks filtering. |
|
996 | Binary files work but without diff hunks filtering. |
General Comments 0
You need to be logged in to leave comments.
Login now