Commit Graph

100 Commits

Author SHA1 Message Date
Eric Eisner
47f74e81de subrepo: lazier git push logic
Avoids calls to git push when the revision is already known to be
in the remote repository. Now, when using a read-only git subrepo,
git will never need to talk to its upstream repository.
2010-11-21 22:00:51 -05:00
Eric Eisner
0e03c676b5 subrepo: archive git subrepos 2010-11-18 19:20:21 -05:00
Patrick Mezard
4795589405 Merge with stable 2010-11-18 23:15:13 +01:00
Patrick Mezard
2539fe4ece subrepo: handle missing subrepo spec file as removed
Otherwise, all commands involving a dirstate walk will abort when trying to
readone of them. Deleting .hgsub basically breaks a repository.
2010-11-18 23:05:10 +01:00
Patrick Mezard
4c85200b1f Merge with stable 2010-11-17 21:30:13 +01:00
Patrick Mezard
f94cde7dfe subrepo: prune empty directories when removing svn subrepo 2010-11-17 21:25:23 +01:00
Patrick Mezard
ef53dec68d subrepo: use subprocess directly to avoid python 2.6 bug
Using svn subrepos on MacOSX with native python 2.6.1 results in a lot of
unexpected output caused by:

    http://bugs.python.org/issue5099
    subprocess.Popen.__del__ causes AttributeError (os module == None)

Avoiding dangling Popen instance solves the issue.
2010-11-17 21:24:36 +01:00
Patrick Mezard
b43cfa6a0e subrepo: fix removing read-only svn files on Windows 2010-11-17 21:00:47 +01:00
Ronny Pfannschmidt
7701046742 subrepo: test & fix svn subrepo removal 2010-11-05 15:13:22 +01:00
Eric Eisner
c8106b69bb subrepo: removing (and restoring) git subrepo state 2010-11-14 18:31:40 -05:00
Eric Eisner
7c9ab4f118 subrepo: update and merge works with any git branch 2010-11-14 18:31:29 -05:00
Eric Eisner
22744d6861 subrepo: allow git subrepos to push and merge
(master branch only)

gitsubrepo based on patch from David Soria Parra:
http://bitbucket.org/segv/davids-poor-git-subrepo-attempt/
2010-11-14 18:22:33 -05:00
Eric Eisner
244b8e45a7 subrepo: cloning and updating of git subrepos
gitsubrepo based on patch from David Soria Parra:
http://bitbucket.org/segv/davids-poor-git-subrepo-attempt/
2010-11-14 18:20:13 -05:00
Eric Eisner
579b798395 subrepo: support for adding a git subrepo
gitsubrepo based on patch from David Soria Parra:
http://bitbucket.org/segv/davids-poor-git-subrepo-attempt/
2010-11-14 18:15:26 -05:00
Mads Kiilerich
eaea535bf7 subrepo: propagate non-default pull/push path to relative subrepos (issue1852) 2010-10-27 00:28:40 +02:00
Martin Geisler
0305929afc subrepo: svnsubrepo._wcrev should return str after 62328a9d763a 2010-10-21 10:54:37 +02:00
Matt Mackall
0677d9a163 subrepo: fix status check on SVN subrepos (issue2445) 2010-10-21 03:28:51 -05:00
Martin Geisler
77ce66fb6a check-code: find trailing whitespace 2010-10-20 10:13:04 +02:00
Mads Kiilerich
fd086af9b7 subrepo: abort instead of pushing/pulling to the repo itself
_abssource will now abort (or return None) in the rare cases where no push/pull
path can be found.
2010-10-19 03:56:20 +02:00
Mads Kiilerich
9c4dc8c331 subrepo: rename relpath to subrelpath and introduce reporelpath 2010-10-19 03:55:28 +02:00
Brodie Rao
ac14679b96 subrepos: add missing self argument to abstractsubrepo.checknested 2010-09-26 16:11:04 -05:00
Wagner Bruna
141644d96f subrepo: improve lookup error messages 2010-09-13 10:33:49 -03:00
Martin Geisler
34af0cf109 subrepo: add support for 'hg archive' 2010-09-20 15:46:17 +02:00
Martin Geisler
37b2820a98 subrepo: introduce files and filedata methods for subrepo classes 2010-09-20 15:44:30 +02:00
Martin Geisler
d37ba034d5 incoming: recurse into subrepositories with --subrepos/-S flag
As with push and outgoing, the optional source path is ignored for the
subrepositories. Fixing this is Issue1852.
2010-09-13 13:09:31 +02:00
Martin Geisler
2346ea8e9e outgoing: recurse into subrepositories with --subrepos/-S flag
As with push, the optional destination path is ignored for the
subrepositories, i.e., they are always compared with their default
push path. Fixing this is Issue1852.
2010-09-13 13:09:26 +02:00
Martin Geisler
cb93a10b9b add: recurse into subrepositories with --subrepos/-S flag 2010-09-13 13:09:20 +02:00
Martin Geisler
ce594fa743 subrepo: handle diff with working copy
We cannot unconditionally call bin(node2) since node2 is None when
comparing with the working copy.
2010-09-10 23:53:49 +02:00
Patrick Mezard
30bd1afde3 subrepos: handle diff nodeids in subrepos, not before
Subversion nodeids are integer revisions.
2010-09-10 22:52:00 +02:00
Martin Geisler
c85f2356e3 subrepos: add function for iterating over ctx subrepos 2010-09-07 16:34:07 +02:00
Martin Geisler
e9c2a20771 diff: recurse into subrepositories with --subrepos/-S flag 2010-09-03 12:58:51 +02:00
Martin Geisler
f2188b5b90 status: recurse into subrepositories with --subrepos/-S flag 2010-09-03 12:58:51 +02:00
Martin Geisler
bfa6c992eb localrepo: add auditor attribute which knows about subrepos 2010-09-03 12:58:51 +02:00
Martin Geisler
9c67cf78d7 subrepo: use [0-9] instead of [\d] in svn subrepo regex
The \d was used in a normal (not raw) string and was only passed
through to re.search because Python does not define that escape
character itself. Using 0-9 makes it clearer what is happening.
2010-08-27 13:03:57 +02:00
Martin Geisler
9c87025d80 subrepos: handle backslashes in subpaths 2010-08-19 13:25:46 +02:00
Martin Geisler
174c3dbb8d subrepos: support remapping of .hgsub source paths
Given a .hgsub file containing

  lib/libfoo = http://server/libfoo

the 'lib/libfoo' subrepo will be cloned from 'http://server/libfoo'.

This changeset introduces a remapping mechanism whereby the source
paths (the right-hand sides) in the .hgsub file can be remapped. This
subpaths section

  [subpaths]
  http://server = /local

will result in the 'lib/libfoo' subrepo being cloned from
'/local/libfoo' instead of from 'http://server/libfoo'.

The patterns (left-hand sides) are really regular expressions and the
replacement strings (right-hand sides) can refer to matched groups
using normal backreferences. This can be used for more complicated
replacements such as

  [subpaths]
  http://server/(.*)-hg/ = http://hg.server/\1/

which replaces 'http://server/foo-hg/' with 'http://hg.server/foo/'.

All patterns are applied in the order by which they are listed in the
config files.
2010-07-15 18:10:05 +02:00
Martin Geisler
b5d9960615 Merge with stable 2010-07-15 14:11:14 +02:00
Mads Kiilerich
b68a37ac34 subrepo: docstrings 2010-07-15 13:24:02 +02:00
Martin Geisler
2061ba7fe0 subrepos: let caller specify a filename for SVN commands 2010-07-14 20:25:31 +02:00
Martin Geisler
294578fe50 subrepo: add abstract superclass for subrepo classes 2010-07-14 20:25:31 +02:00
Matt Mackall
49d11c6847 subrepo: correctly handle update -C with modified subrepos (issue2022)
(based on a patch by Saint Germain)
2010-06-30 23:56:35 -05:00
Matt Mackall
4edb323e75 subrepo: fix recording of + in .hgsubstate (issue2217) 2010-06-29 17:30:42 -05:00
Matt Mackall
43cb4cbcf4 subrepo: fix silent push failure for SVN (issue2241) 2010-06-27 18:20:49 -05:00
Matt Mackall
8f1a07c9bd subrepo: fix 2.5ism in url parsing 2010-05-07 14:19:14 -05:00
Edouard Gomez
293b104156 subrepo: print paths relative to upper repo root for push/pull/commit
This makes more sense when using multiple levels of
nesting.

This happens to help a lot in a case where 3 projects
of mine all use the same makefile helper project as a
sub. A fourth project use these first three projects
and current output made it very hard to figure
which makefile helper was committed. it looked more
like the project was committed/pushed/pulled three times
in a row than dealing on three different repos.
2010-05-01 23:05:22 +02:00
Edouard Gomez
0a2d8e6eef subrepo: print pushing url 2010-05-01 23:05:22 +02:00
Edouard Gomez
46ea8095fd subrepo: normalize path part of URLs so that pulling subrepos from webdir works
For a "all projects at root" repo layout eg:
/main
/sub

Where subrepos are used such that a clone of main has this layout:
./main/
./main/.hgsub
./main/sub/

And the .hgsub content is:
sub = ../sub

This allows a pull from a hgweb where main and sub are exposed
at the root (or same directory level)

The current code doesn't normalize the path component of a pull
url. this results in trying to pull from
http://server.com/hg/main/../sub

Current hgweb implementation doesn't reduce the path component
so this results in a 404 error though everything is setup logically.

This patch adresses this 404 error on the puller side
normalizing the URLs used for pulling sub repos. For this
example, the URL would be reduced to http://server.com/hg/sub

Fix + test
2010-05-01 23:05:19 +02:00
Matt Mackall
7f6aa6252c Merge with stable 2010-05-01 15:15:35 -05:00
Matt Mackall
53ab4498e1 subrepo: propagate and catch push failures 2010-04-30 18:32:18 -05:00
Brett Cannon
8e100766b6 subrepo: fix repo root path handling in svn subrepo 2010-04-18 14:20:08 -07:00