| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
This makes it easier to identify what version of a system we are running.
Tests are updated to check inside the contents of the rootfs we created,
and the code to mount the rootfs as a loopback device was extracted out
into tests.as-root/lib
|
|\
| |
| |
| | |
Reviewed-By: Richard Maw <richard.maw@codethink.co.uk>
|
| |
| |
| |
| |
| | |
Output needs to be stable, not least so that the test doesn't fail
sporadically.
|
|\ \
| |/
|/|
| | |
git://git.baserock.org/baserock/morph
|
|/
|
|
|
|
|
|
|
|
|
|
|
| |
This change causes 'morph petrify' to avoid petrifying any chunk whose
ref matches the current system branch, because it makes no sense to
petrify something that is also being edited. It also improves efficiency
slightly and adds warning where different systems point to different
refs of the same stratum.
A non-obvious effect of this is that if you try to petrify 'master',
many of the chunks won't get petrified because they are built from
'master'. However, petrifying master makes no sense so I'm not sure
that we need to worry.
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Previously if the user had renamed the directory holding the root
repository, the commands would break tragically.
Also fix find_repository() to avoid aborting if it encounters a git
repo in the branch checkout that wasn't put there by Morph.
|
| | |
|
| |
| |
| |
| | |
This provides a user-friendly summary of the workspace or branch status.
|
|/
|
|
|
| |
Users do not need these now due to 'morph status' existing. However, they
are still useful for scripts to call.
|
|\ |
|
| | |
|
| | |
|
|/
|
|
|
| |
This fixes a bunch of tests so they pass on squeeze, which has a version
of Python whose GzipFile doesn't support the "with" protocol.
|
|\
| |
| |
| |
| |
| | |
'origin/samthursfield/S4873-warn-when-merge-causes-petrification'
Renamed petrification test slightly as merge fixup.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The concept of a component path is new. This is simply a concise way
of referring to a component in an error message, and looks like this:
base-system-x86_64-generic.bsp-x86_64-generic.linux
We currently only touch the 'edited chunks' in merge_stratum(), i.e.
those in the FROM branch where 'morph edit' was run. However, the
petrification can affect any chunk so there is a new method added to
obtain all components in a morphology. This function also returns the
differences between the two, which we will make use of at a later date.
|
| | |
|
|\ \
| |/
|/| |
|
| | |
|
| | |
|
| | |
|
|/ |
|
|\
| |
| |
| | |
Reviewed-By: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
|
|/
|
|
|
|
|
|
|
|
| |
This should not normally be used, because we make no attempt to detect
when a full URL and a keyed URL are equivalent, so they cannot be used
interchangably.
However, 'foreach' would previously fail completely if the branch root
happened to be a full URL because it didn't call convert_uri_to_path()
correctly.
|
|\
| |
| |
| |
| |
| |
| | |
git://git.baserock.org/baserock/morph
Signed-off-by: Lars Wirzenius on IRC
Signed-off-by: Daniel Silverstone on IRC
|
| | |
|
| |
| |
| |
| |
| |
| | |
Symlink paths are not altered, since their paths are relative to
where the link is, not the root of the file system, and should be
handled by the chunk's creation.
|
| | |
|
|/
|
|
|
| |
os.path.relpath does approximately the same as mkrel, with the
exception of asserting.
|
|\
| |
| |
| | |
git://git.baserock.org/baserock/morph
|
| | |
|
| |
| |
| |
| |
| |
| | |
The make-patch test assumes system images will be mountable. This
patch disables that part of the test and adds a warning that we
need to sort this out longer-term.
|
| |
| |
| |
| |
| |
| | |
This corrects make-patch to decompress system images as they're
now compressed. Longer-term this should cope with tarball
system images etc.
|
| | |
|
|/ |
|
|\
| |
| |
| |
| | |
Reviewed-By: Lars Wirzenius (over the shoulder)
Reviewed-By: Richard Maw (over the shoulder)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since tarball rootfs images are compressed with gzip -1, we should do
the same for disk images. This means they'll need decompressing before
they can be used as disk images, but it means we'll be shunting around
something closer to their true data size rather than the disk image size.
For example, a 2G development system image compresses down to around
380M which is a lot faster to transfer and doesn't risk de-sparseification.
|
|/
|
|
|
| |
Reviewed-By: Daniel Silverstone (on irc)
Reviewed-By: Richard Maw (on irc)
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Scenario: a repository contains a ref: refs/heads/foo and we
have that in our repository cache.
Action: upstream deletes that ref and then pushes a new refs
at refs/heads/foo/bar.
Action: we attempt to update the git and the update fails because
git remote update cannot cope with the 'kind' change of
refs/heads/foo from ref to directory.
Remedy: If we get an exception from the remote update --prune we
try the less efficient but more resilient combination of
first pruning and then updating.
Reviewed-By: Lars Wirzenius (over the shoulder)
Reviewed-By: Richard Maw (over the shoulder)
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This adds tarball construction for rootfs-tarball.
We deliberately choose compression level 1 because it gets us
sufficient savings (ca. 60% smaller) while not wasting too much
time (roughly 60% more time than uncompressed tar generation).
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We were having trouble with NTP setting the system time to be correct
after .pyc files had already been created. The .pyc files got created
at startup, before NTP had had a chance to run. This sometimes resulted
in .pyc timestamps being wildly wrong and far in the future or past,
and that would prevent morph from ever working again on the machine.
We now just check that the system time is not far in the past. This
is enough to make sure we don't create timestamps that break tar.
Reviewed-By: Daniel Silverstone (on irc)
|
|\ \
| |/
|/|
| | |
Reviewed-By: Richard Maw (on irc)
|
|/ |
|
|
|
|
|
|
|
|
| |
This alters the test behaviour so that umount;losetup becomes
umount -d. This means that util-linux and busybox line up in
terms of behaviour for this test.
Reviewed-By: Richard Maw (Over the shoulder)
|
|\ |
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We often have .gitmodules edited to contain a URI such as
upstream:gnulib, so that we can transparently mirror these in different
locations.
It would be nice to set up git url.insteadOf rules to expand these for
the submodules, but 'git submodule update' uses 'git clone' to fetch
them, which will not take into account the configuration of the
parent repository.
Instead, we set up the submodules automatically and rewrite the URLs
directly in the configuration. The user will need to recreate their
system branch checkouts if their URL configuration changes, or update
the URLs manually, but that should not happen often.
|
|\ |
|