Show More
@@ -15,6 +15,7 b' import stat' | |||
|
15 | 15 | |
|
16 | 16 | from mercurial import dirstate, httpconnection, match as match_, util, scmutil |
|
17 | 17 | from mercurial.i18n import _ |
|
18 | from mercurial import node | |
|
18 | 19 | |
|
19 | 20 | shortname = '.hglf' |
|
20 | 21 | shortnameslash = shortname + '/' |
@@ -365,3 +366,25 b' def getlfilestoupdate(oldstandins, newst' | |||
|
365 | 366 | if f[0] not in filelist: |
|
366 | 367 | filelist.append(f[0]) |
|
367 | 368 | return filelist |
|
369 | ||
|
370 | def getlfilestoupload(repo, missing, addfunc): | |
|
371 | for n in missing: | |
|
372 | parents = [p for p in repo.changelog.parents(n) if p != node.nullid] | |
|
373 | ctx = repo[n] | |
|
374 | files = set(ctx.files()) | |
|
375 | if len(parents) == 2: | |
|
376 | mc = ctx.manifest() | |
|
377 | mp1 = ctx.parents()[0].manifest() | |
|
378 | mp2 = ctx.parents()[1].manifest() | |
|
379 | for f in mp1: | |
|
380 | if f not in mc: | |
|
381 | files.add(f) | |
|
382 | for f in mp2: | |
|
383 | if f not in mc: | |
|
384 | files.add(f) | |
|
385 | for f in mc: | |
|
386 | if mc[f] != mp1.get(f, None) or mc[f] != mp2.get(f, None): | |
|
387 | files.add(f) | |
|
388 | for fn in files: | |
|
389 | if isstandin(fn) and fn in ctx: | |
|
390 | addfunc(fn, ctx[fn].data().strip()) |
@@ -12,7 +12,7 b' import os' | |||
|
12 | 12 | import copy |
|
13 | 13 | |
|
14 | 14 | from mercurial import hg, commands, util, cmdutil, scmutil, match as match_, \ |
|
15 |
|
|
|
15 | archival, error, merge, discovery, pathutil, revset | |
|
16 | 16 | from mercurial.i18n import _ |
|
17 | 17 | from mercurial.node import hex |
|
18 | 18 | from hgext import rebase |
@@ -1002,25 +1002,7 b' def getoutgoinglfiles(ui, repo, dest=Non' | |||
|
1002 | 1002 | o.reverse() |
|
1003 | 1003 | |
|
1004 | 1004 | toupload = set() |
|
1005 | for n in o: | |
|
1006 | parents = [p for p in repo.changelog.parents(n) if p != node.nullid] | |
|
1007 | ctx = repo[n] | |
|
1008 | files = set(ctx.files()) | |
|
1009 | if len(parents) == 2: | |
|
1010 | mc = ctx.manifest() | |
|
1011 | mp1 = ctx.parents()[0].manifest() | |
|
1012 | mp2 = ctx.parents()[1].manifest() | |
|
1013 | for f in mp1: | |
|
1014 | if f not in mc: | |
|
1015 | files.add(f) | |
|
1016 | for f in mp2: | |
|
1017 | if f not in mc: | |
|
1018 | files.add(f) | |
|
1019 | for f in mc: | |
|
1020 | if mc[f] != mp1.get(f, None) or mc[f] != mp2.get(f, None): | |
|
1021 | files.add(f) | |
|
1022 | toupload = toupload.union( | |
|
1023 | set([f for f in files if lfutil.isstandin(f) and f in ctx])) | |
|
1005 | lfutil.getlfilestoupload(repo, o, lambda fn, lfhash: toupload.add(fn)) | |
|
1024 | 1006 | return sorted(toupload) |
|
1025 | 1007 | |
|
1026 | 1008 | def overrideoutgoing(orig, ui, repo, dest=None, **opts): |
@@ -11,7 +11,6 b' import copy' | |||
|
11 | 11 | import os |
|
12 | 12 | |
|
13 | 13 | from mercurial import error, manifest, match as match_, util, discovery |
|
14 | from mercurial import node as node_ | |
|
15 | 14 | from mercurial.i18n import _ |
|
16 | 15 | from mercurial import localrepo |
|
17 | 16 | |
@@ -419,30 +418,8 b' def reposetup(ui, repo):' | |||
|
419 | 418 | if outgoing.missing: |
|
420 | 419 | toupload = set() |
|
421 | 420 | o = self.changelog.nodesbetween(outgoing.missing, revs)[0] |
|
422 | for n in o: | |
|
423 | parents = [p for p in self.changelog.parents(n) | |
|
424 | if p != node_.nullid] | |
|
425 | ctx = self[n] | |
|
426 | files = set(ctx.files()) | |
|
427 | if len(parents) == 2: | |
|
428 | mc = ctx.manifest() | |
|
429 | mp1 = ctx.parents()[0].manifest() | |
|
430 | mp2 = ctx.parents()[1].manifest() | |
|
431 | for f in mp1: | |
|
432 | if f not in mc: | |
|
433 | files.add(f) | |
|
434 | for f in mp2: | |
|
435 | if f not in mc: | |
|
436 | files.add(f) | |
|
437 | for f in mc: | |
|
438 | if mc[f] != mp1.get(f, None) or mc[f] != mp2.get(f, | |
|
439 | None): | |
|
440 | files.add(f) | |
|
441 | ||
|
442 | toupload = toupload.union( | |
|
443 | set([ctx[f].data().strip() | |
|
444 | for f in files | |
|
445 | if lfutil.isstandin(f) and f in ctx])) | |
|
421 | addfunc = lambda fn, lfhash: toupload.add(lfhash) | |
|
422 | lfutil.getlfilestoupload(self, o, addfunc) | |
|
446 | 423 | lfcommands.uploadlfiles(ui, self, remote, toupload) |
|
447 | 424 | return super(lfilesrepo, self).push(remote, force=force, revs=revs, |
|
448 | 425 | newbranch=newbranch) |
General Comments 0
You need to be logged in to leave comments.
Login now