| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
We now have a two-stage merge process. Stage one only runs if there
are changes in both branches on the same file. At the end of stage
one we assume that all the components that were edited in the FROM
branch still have their 'ref' field set to the FROM branch. Morph
then iterates through these repositories, performing a merge in each
one, and then updates the refs in the morphologies again with the
correct target branches.
|
|
|
|
|
| |
We print a bunch of stuff if conflicts are encountered, so we should make
it clear at the end whether ultimately they were all resolvable or not.
|
|
|
|
|
| |
These do need to be quite clear, because merge failures will happen a
lot and we are relatively unhelpful at the moment.
|
|
|
|
|
| |
armv5 and armv7 are different enough to be a problem, so specify
which particular arm sub-architecture we currently support.
|
|
|
|
|
|
| |
Run git reset --hard in all repos if we get an exception at any point.
merge_system() is extracted out of merge() to avoid comedy indentation.
|
|
|
|
|
| |
Unless the error is in the system morphs repo, we carry on trying to merge
after errors and report all of the failures at the end.
|
| |
|
| |
|
| |
|
|\
| |
| |
| |
| |
| |
| | |
'origin/danielsilverstone/tarballs-instead-of-bundles'
Reviewed-By: Lars Wirzenius (IRL)
Reviewed-By: Richard Maw (IRL)
|
| |
| |
| |
| |
| |
| |
| | |
This makes a non-backward-compatible change to morph which switches it to using
tarballs instead of bundles when initialising cached git repositories. This is
faster because it doesn't require index-pack --fix-thin operations on the
machine running morph.
|
|/
|
|
| |
Reviewed-By: Lars Wirzenius on IRC
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
This causes bundle-server and cache-server to be defaulted to
appropriate Trove related URLs unless overridden in the configs.
Reviewed-By: Lars Wirzenius <lars.wirzenius@codethink.co.uk>
|
|/
|
|
| |
Reviewed-By: Daniel Silverstone (on irc)
|
|
|
|
|
| |
'morph edit' is for editing source code, not built artifacts, so we
should use the source morphology name.
|
|
|
|
|
|
|
|
| |
This can take a long time if it's a big repo that has not been used
before, so explain to the user what the command is doing, eg:
~:$ morph edit baserock:morphs foundation linux
2012-09-24 11:53:15 Updating git repository upstream:linux in cache
|
|\ |
|
| | |
|
| |
| |
| |
| | |
If it's in the future this may cause problems, so exit with an error
|
|\ \
| |/
|/|
| | |
git://git.baserock.org/baserock/morph
|
| |
| |
| |
| |
| |
| |
| |
| | |
If the user explictly asks to edit a chunk, we can assume that they
do not want it to be petrified any longer.
Also, 'git clone -b' will fail if given a SHA1 instead of an actual
ref.
|
| |
| |
| |
| |
| |
| | |
This required factoring out some of the 'edit' command so we can
use the same mechanism to make strata available to rewrite their
refs for petrification.
|
| |
| |
| |
| | |
Tested in the petrify test, to avoid duplication.
|
| | |
|
| |
| |
| |
| |
| |
| | |
Use cliapp.Application.runcmd_unchecked() instead of runcmd() to get
the full command output, without requiring AppException.msg (which is
an inferior way to get the output in any case)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The artifact being built is often subsequently hard to find since the user has
to go digging around in their artifact cache to try and determine which
artifact is the one they want.
With this change, the filepath to the artifact will be displayed after building
it. As a side effect, we also need to always cache artifacts locally in order
to do this, otherwise we'd have to report URLs to the remote artifact cache
instead and that might be less useful overall.
|
| |
| |
| |
| |
| |
| | |
This adds a way to access the local disk path of the artifact
for an artifact. This is necessary to be able to report it to
the user.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Also remove a spurious warning.
Longer term, this git access code should be moved to a Repo class
which can be shared with the rest of Morph and provide more granular
exceptions on failure.
|
| | |
|
| |
| |
| |
| |
| |
| | |
It's not obvious (to non-unix-beards) that -- should be used to pass
commandline arguments, we should be careful to make it clear in the
documentation.
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | | |
Use cliapp.Application.runcmd_unchecked() instead of runcmd() to get
the full command output, without requiring AppException.msg (which is
an inferior way to get the output in any case)
|
|\ \ \
| |_|/
|/| | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The artifact being built is often subsequently hard to find since the user has
to go digging around in their artifact cache to try and determine which
artifact is the one they want.
With this change, the filepath to the artifact will be displayed after building
it. As a side effect, we also need to always cache artifacts locally in order
to do this, otherwise we'd have to report URLs to the remote artifact cache
instead and that might be less useful overall.
|
| |/
| |
| |
| |
| |
| | |
This adds a way to access the local disk path of the artifact
for an artifact. This is necessary to be able to report it to
the user.
|
|/
|
|
|
|
| |
Log (at chatty) when we start and finish bundle downloads. If we fail for any
reason, log that reason since otherwise it gets swallowed if the plain git
clone succeeds.
|
| |
|
|
|
|
|
| |
This is a useful tool for now to work around our lack of more
specific system branch commands such as 'morph push' and 'morph pull'
|
|
|
|
| |
'git commit' fails if there are no changes in any case.
|
|
|
|
|
| |
There are two copies of each repo involved at this point so we must
be clear about which one has an error.
|
|
|
|
|
|
|
|
|
|
|
| |
We now load the previous version of the morphology and check for
differences, which allows us to handle components that were added or
removed between branches.
We currently disallow adding new chunks or strata in a branch if
they were 'edit'ed afterwards. We can fix this by having 'edit'
store the original ref in the repo, rather than reading it from
the old version of the morphology.
|
|
|
|
|
|
| |
This fixes a major bug which would update all sorts of refs that should
not have been updated. Also avoids rewriting morphs that haven't
changed at all.
|
|
|
|
|
|
|
| |
'morph edit' will now restore a system branch ref if the user has
accidentally deleted it.
Includes refactoring to clear up parameter meanings.
|
|
|
|
| |
Update the unit tests so that they pass with the new bare repository caches.
|
|
|
|
|
|
|
|
| |
This reworks the code for managing and using the git caches in morph to treat
the caches as bare repositories which are mirrors of where we clone from. In
addition we correctly prune the branches during updates, so that we don't end
up accumulating pointless branches over and over. This is even more important
with branch-and-merge generating temporary build refs for things.
|
|\
| |
| |
| | |
Reviewed-By: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This requires disabling the feature that retains the original order of
fields in a morphlogy when it gets overwritten. The implementation relies
on features that are not available in Python 2.6. We need to support
Morph on Debian squeeze, for bootstrapping purposes, and therefore need
to have it work with Python 2.6. However, the morphology rewriting is
only relevant for system branching and merging, and that isn't needed
for bootstrapping, so we disable the affected tests on Python 2.6.
|
|/
|
|
|
|
| |
This fixes 'morph build' and its tests on systems without
git 1.7.9 (Morph worked fine on Baserock systems, but it also
needs to run on Debian Squeeze so that we can bootstrap).
|