##// END OF EJS Templates
Actually warn on pulling from an unrelated repository...
mpm@selenic.com -
r579:ffeb2c3a default
parent child Browse files
Show More
@@ -0,0 +1,17 b''
1 mkdir a
2 cd a
3 hg init
4 echo 123 > a
5 hg add a
6 hg commit -t "a" -u a -d "0 0"
7
8 cd ..
9 mkdir b
10 cd b
11 hg init
12 echo 321 > b
13 hg add b
14 hg commit -t "b" -u b -d "0 0"
15
16 hg pull ../a
17 hg heads
@@ -0,0 +1,19 b''
1 pulling from ../a
2 searching for changes
3 warning: pulling from an unrelated repository!
4 adding changesets
5 adding manifests
6 adding file revisions
7 modified 1 files, added 1 changesets and 1 new revisions
8 (run 'hg update' to get a working copy)
9 changeset: 1:9a79c33a9db37480e40fbd2a65d62ebd2a3c441c
10 tag: tip
11 user: a
12 date: Thu Jan 1 00:00:00 1970
13 summary: a
14
15 changeset: 0:01f8062b2de51c0fa6428c5db1d1b3ea780189df
16 user: b
17 date: Thu Jan 1 00:00:00 1970
18 summary: b
19
@@ -852,6 +852,7 b' class localrepository:'
852 852 m = self.changelog.nodemap
853 853 search = []
854 854 fetch = []
855 base = {}
855 856 seen = {}
856 857 seenbranch = {}
857 858
@@ -861,6 +862,7 b' class localrepository:'
861 862 return [nullid]
862 863
863 864 # otherwise, assume we're closer to the tip than the root
865 # and start by examining the heads
864 866 self.ui.status("searching for changes\n")
865 867 heads = remote.heads()
866 868 unknown = []
@@ -874,6 +876,10 b' class localrepository:'
874 876 rep = {}
875 877 reqcnt = 0
876 878
879 # search through remote branches
880 # a 'branch' here is a linear segment of history, with four parts:
881 # head, root, first parent, second parent
882 # (a branch always has two parents (or none) by definition)
877 883 unknown = remote.branches(unknown)
878 884 while unknown:
879 885 r = []
@@ -899,6 +905,7 b' class localrepository:'
899 905 self.ui.debug("found new changeset %s\n" %
900 906 short(n[1]))
901 907 fetch.append(n[1]) # earliest unknown
908 base[n[2]] = 1 # latest known
902 909 continue
903 910
904 911 for a in n[2:4]:
@@ -919,6 +926,7 b' class localrepository:'
919 926 if b[0] not in m and b[0] not in seen:
920 927 unknown.append(b)
921 928
929 # do binary search on the branches we found
922 930 while search:
923 931 n = search.pop(0)
924 932 reqcnt += 1
@@ -933,6 +941,7 b' class localrepository:'
933 941 self.ui.debug("found new branch changeset %s\n" %
934 942 short(p))
935 943 fetch.append(p)
944 base[i] = 1
936 945 else:
937 946 self.ui.debug("narrowed branch search to %s:%s\n"
938 947 % (short(p), short(i)))
@@ -940,11 +949,12 b' class localrepository:'
940 949 break
941 950 p, f = i, f * 2
942 951
952 # sanity check our fetch list
943 953 for f in fetch:
944 954 if f in m:
945 955 raise RepoError("already have changeset " + short(f[:4]))
946 956
947 if fetch == [nullid]:
957 if base.keys() == [nullid]:
948 958 self.ui.warn("warning: pulling from an unrelated repository!\n")
949 959
950 960 self.ui.note("adding new changesets starting at " +
General Comments 0
You need to be logged in to leave comments. Login now