Mercurial > hgsubversion
annotate hgsubversion/layouts/standard.py @ 1014:0ed7cf23e801
layouts: refactor path component of convinfo generation into layouts lib
This adds code responsible for producing an absolute path within the
subversion repository to the new layout objects. It also uses that
code to generate the path component of the conversion info we stick
into extra.
author | David Schleimer <dschleimer@fb.com> |
---|---|
date | Fri, 26 Apr 2013 11:14:06 -0700 |
parents | d507c1a12dcb |
children | 66395f232b7c |
rev | line source |
---|---|
1012
e8cd211684c4
layouts: refactor out svn path to mercurial branch logic
David Schleimer <dschleimer@fb.com>
parents:
diff
changeset
|
1 |
e8cd211684c4
layouts: refactor out svn path to mercurial branch logic
David Schleimer <dschleimer@fb.com>
parents:
diff
changeset
|
2 |
e8cd211684c4
layouts: refactor out svn path to mercurial branch logic
David Schleimer <dschleimer@fb.com>
parents:
diff
changeset
|
3 import base |
e8cd211684c4
layouts: refactor out svn path to mercurial branch logic
David Schleimer <dschleimer@fb.com>
parents:
diff
changeset
|
4 |
e8cd211684c4
layouts: refactor out svn path to mercurial branch logic
David Schleimer <dschleimer@fb.com>
parents:
diff
changeset
|
5 |
e8cd211684c4
layouts: refactor out svn path to mercurial branch logic
David Schleimer <dschleimer@fb.com>
parents:
diff
changeset
|
6 class StandardLayout(base.BaseLayout): |
e8cd211684c4
layouts: refactor out svn path to mercurial branch logic
David Schleimer <dschleimer@fb.com>
parents:
diff
changeset
|
7 """The standard trunk, branches, tags layout""" |
e8cd211684c4
layouts: refactor out svn path to mercurial branch logic
David Schleimer <dschleimer@fb.com>
parents:
diff
changeset
|
8 |
e8cd211684c4
layouts: refactor out svn path to mercurial branch logic
David Schleimer <dschleimer@fb.com>
parents:
diff
changeset
|
9 def localname(self, path): |
e8cd211684c4
layouts: refactor out svn path to mercurial branch logic
David Schleimer <dschleimer@fb.com>
parents:
diff
changeset
|
10 if path == 'trunk': |
e8cd211684c4
layouts: refactor out svn path to mercurial branch logic
David Schleimer <dschleimer@fb.com>
parents:
diff
changeset
|
11 return None |
e8cd211684c4
layouts: refactor out svn path to mercurial branch logic
David Schleimer <dschleimer@fb.com>
parents:
diff
changeset
|
12 elif path.startswith('branches/'): |
e8cd211684c4
layouts: refactor out svn path to mercurial branch logic
David Schleimer <dschleimer@fb.com>
parents:
diff
changeset
|
13 return path[len('branches/'):] |
e8cd211684c4
layouts: refactor out svn path to mercurial branch logic
David Schleimer <dschleimer@fb.com>
parents:
diff
changeset
|
14 return '../%s' % path |
1013
d507c1a12dcb
layouts: refactor mercurial branch to svn path mapping out of svnmeta
David Schleimer <dschleimer@fb.com>
parents:
1012
diff
changeset
|
15 |
d507c1a12dcb
layouts: refactor mercurial branch to svn path mapping out of svnmeta
David Schleimer <dschleimer@fb.com>
parents:
1012
diff
changeset
|
16 def remotename(self, branch): |
d507c1a12dcb
layouts: refactor mercurial branch to svn path mapping out of svnmeta
David Schleimer <dschleimer@fb.com>
parents:
1012
diff
changeset
|
17 if branch == 'default' or branch is None: |
d507c1a12dcb
layouts: refactor mercurial branch to svn path mapping out of svnmeta
David Schleimer <dschleimer@fb.com>
parents:
1012
diff
changeset
|
18 return 'trunk' |
d507c1a12dcb
layouts: refactor mercurial branch to svn path mapping out of svnmeta
David Schleimer <dschleimer@fb.com>
parents:
1012
diff
changeset
|
19 elif branch.startswith('../'): |
d507c1a12dcb
layouts: refactor mercurial branch to svn path mapping out of svnmeta
David Schleimer <dschleimer@fb.com>
parents:
1012
diff
changeset
|
20 return branch[3:] |
d507c1a12dcb
layouts: refactor mercurial branch to svn path mapping out of svnmeta
David Schleimer <dschleimer@fb.com>
parents:
1012
diff
changeset
|
21 return 'branches/%s' % branch |
1014
0ed7cf23e801
layouts: refactor path component of convinfo generation into layouts lib
David Schleimer <dschleimer@fb.com>
parents:
1013
diff
changeset
|
22 |
0ed7cf23e801
layouts: refactor path component of convinfo generation into layouts lib
David Schleimer <dschleimer@fb.com>
parents:
1013
diff
changeset
|
23 def remotepath(self, branch, subdir='/'): |
0ed7cf23e801
layouts: refactor path component of convinfo generation into layouts lib
David Schleimer <dschleimer@fb.com>
parents:
1013
diff
changeset
|
24 branchpath = 'trunk' |
0ed7cf23e801
layouts: refactor path component of convinfo generation into layouts lib
David Schleimer <dschleimer@fb.com>
parents:
1013
diff
changeset
|
25 if branch: |
0ed7cf23e801
layouts: refactor path component of convinfo generation into layouts lib
David Schleimer <dschleimer@fb.com>
parents:
1013
diff
changeset
|
26 if branch.startswith('../'): |
0ed7cf23e801
layouts: refactor path component of convinfo generation into layouts lib
David Schleimer <dschleimer@fb.com>
parents:
1013
diff
changeset
|
27 branchpath = branch[3:] |
0ed7cf23e801
layouts: refactor path component of convinfo generation into layouts lib
David Schleimer <dschleimer@fb.com>
parents:
1013
diff
changeset
|
28 else: |
0ed7cf23e801
layouts: refactor path component of convinfo generation into layouts lib
David Schleimer <dschleimer@fb.com>
parents:
1013
diff
changeset
|
29 branchpath = 'branches/%s' % branch |
0ed7cf23e801
layouts: refactor path component of convinfo generation into layouts lib
David Schleimer <dschleimer@fb.com>
parents:
1013
diff
changeset
|
30 |
0ed7cf23e801
layouts: refactor path component of convinfo generation into layouts lib
David Schleimer <dschleimer@fb.com>
parents:
1013
diff
changeset
|
31 return '%s/%s' % (subdir or '', branchpath) |