Show More
@@ -141,7 +141,7 b' class largefilesdirstate(dirstate.dirsta' | |||||
141 | def normallookup(self, f): |
|
141 | def normallookup(self, f): | |
142 | return super(largefilesdirstate, self).normallookup(unixpath(f)) |
|
142 | return super(largefilesdirstate, self).normallookup(unixpath(f)) | |
143 |
|
143 | |||
144 | def openlfdirstate(ui, repo): |
|
144 | def openlfdirstate(ui, repo, create=True): | |
145 | ''' |
|
145 | ''' | |
146 | Return a dirstate object that tracks largefiles: i.e. its root is |
|
146 | Return a dirstate object that tracks largefiles: i.e. its root is | |
147 | the repo root, but it is saved in .hg/largefiles/dirstate. |
|
147 | the repo root, but it is saved in .hg/largefiles/dirstate. | |
@@ -154,7 +154,7 b' def openlfdirstate(ui, repo):' | |||||
154 | # If the largefiles dirstate does not exist, populate and create |
|
154 | # If the largefiles dirstate does not exist, populate and create | |
155 | # it. This ensures that we create it on the first meaningful |
|
155 | # it. This ensures that we create it on the first meaningful | |
156 | # largefiles operation in a new clone. |
|
156 | # largefiles operation in a new clone. | |
157 | if not os.path.exists(os.path.join(admin, 'dirstate')): |
|
157 | if create and not os.path.exists(os.path.join(admin, 'dirstate')): | |
158 | util.makedirs(admin) |
|
158 | util.makedirs(admin) | |
159 | matcher = getstandinmatcher(repo) |
|
159 | matcher = getstandinmatcher(repo) | |
160 | for standin in dirstatewalk(repo.dirstate, matcher): |
|
160 | for standin in dirstatewalk(repo.dirstate, matcher): | |
@@ -435,8 +435,11 b' def unixpath(path):' | |||||
435 | return util.pconvert(os.path.normpath(path)) |
|
435 | return util.pconvert(os.path.normpath(path)) | |
436 |
|
436 | |||
437 | def islfilesrepo(repo): |
|
437 | def islfilesrepo(repo): | |
438 |
|
|
438 | if ('largefiles' in repo.requirements and | |
439 | util.any(shortname + '/' in f[0] for f in repo.store.datafiles())) |
|
439 | util.any(shortname + '/' in f[0] for f in repo.store.datafiles())): | |
|
440 | return True | |||
|
441 | ||||
|
442 | return util.any(openlfdirstate(repo.ui, repo, False)) | |||
440 |
|
443 | |||
441 | class storeprotonotcapable(Exception): |
|
444 | class storeprotonotcapable(Exception): | |
442 | def __init__(self, storetypes): |
|
445 | def __init__(self, storetypes): |
@@ -1583,3 +1583,40 b' Lock in subrepo, otherwise the change is' | |||||
1583 | lf_subrepo_archive/subrepo/normal.txt |
|
1583 | lf_subrepo_archive/subrepo/normal.txt | |
1584 |
|
1584 | |||
1585 | $ cd .. |
|
1585 | $ cd .. | |
|
1586 | ||||
|
1587 | Test that addremove picks up largefiles prior to the initial commit (issue3541) | |||
|
1588 | ||||
|
1589 | $ hg init addrm2 | |||
|
1590 | $ cd addrm2 | |||
|
1591 | $ touch large.dat | |||
|
1592 | $ touch large2.dat | |||
|
1593 | $ touch normal | |||
|
1594 | $ hg add --large large.dat | |||
|
1595 | $ hg addremove -v | |||
|
1596 | adding large2.dat as a largefile | |||
|
1597 | adding normal | |||
|
1598 | ||||
|
1599 | Test that forgetting all largefiles reverts to islfilesrepo() == False | |||
|
1600 | (addremove will add *.dat as normal files now) | |||
|
1601 | $ hg forget large.dat | |||
|
1602 | $ hg forget large2.dat | |||
|
1603 | $ hg addremove -v | |||
|
1604 | adding large.dat | |||
|
1605 | adding large2.dat | |||
|
1606 | ||||
|
1607 | Test commit's addremove option prior to the first commit | |||
|
1608 | $ hg forget large.dat | |||
|
1609 | $ hg forget large2.dat | |||
|
1610 | $ hg add --large large.dat | |||
|
1611 | $ hg ci -Am "commit" | |||
|
1612 | adding large2.dat as a largefile | |||
|
1613 | Invoking status precommit hook | |||
|
1614 | A large.dat | |||
|
1615 | A large2.dat | |||
|
1616 | A normal | |||
|
1617 | $ find .hglf/ | sort | |||
|
1618 | .hglf/ | |||
|
1619 | .hglf/large.dat | |||
|
1620 | .hglf/large2.dat | |||
|
1621 | ||||
|
1622 | $ cd .. |
General Comments 0
You need to be logged in to leave comments.
Login now