Mercurial > hg
comparison mercurial/subrepo.py @ 23666:965788d9ae09
localrepo: introduce shared method to check if a repository is shared
Up until now we compared the "path" and "sharedpath" repository properties to
check if a repository is shared. This was relying an implementation detail of
shared repositories. In order to make it possible to change the way shared
repositories are implemented, we encapsulate this check into its own localrepo
method, called shared.
This new method returns None if the repository is shared, and something else
(for now a string describing the short of share) otherwise.
The reason why I did not call this method "isshared" and made it return a
boolean is that I plan to introduce a new type of shared repository soon.
# NOTES:
This is the first patch in a series whose purpose is to add support for
creating "full repository shares", which are repositories that share everything
with the repository source except their current revision, branch and bookmark.
This series is RFC because I am not very sure of some of the solutions I took.
Comments are welcome!
author | Angel Ezquerra <angel.ezquerra@gmail.com> |
---|---|
date | Sun, 21 Dec 2014 00:19:10 +0100 |
parents | e20f36ad092e |
children | 194d2f185008 |
comparison
equal
deleted
inserted
replaced
23665:a90499a6ad8d | 23666:965788d9ae09 |
---|---|
300 return repo._subtoppath | 300 return repo._subtoppath |
301 if push and repo.ui.config('paths', 'default-push'): | 301 if push and repo.ui.config('paths', 'default-push'): |
302 return repo.ui.config('paths', 'default-push') | 302 return repo.ui.config('paths', 'default-push') |
303 if repo.ui.config('paths', 'default'): | 303 if repo.ui.config('paths', 'default'): |
304 return repo.ui.config('paths', 'default') | 304 return repo.ui.config('paths', 'default') |
305 if repo.sharedpath != repo.path: | 305 if repo.shared(): |
306 # chop off the .hg component to get the default path form | 306 # chop off the .hg component to get the default path form |
307 return os.path.dirname(repo.sharedpath) | 307 return os.path.dirname(repo.sharedpath) |
308 if abort: | 308 if abort: |
309 raise util.Abort(_("default path for subrepository not found")) | 309 raise util.Abort(_("default path for subrepository not found")) |
310 | 310 |