Colin Walters
633477806c
ostbuild: Propagate buildroot version, finish add-artifacts
...
We need to track what buildroot each artifact was created in.
2011-12-23 07:46:08 -05:00
Colin Walters
1687f3efa8
core: Add --add-metadata-string option for commit
...
A convenience function for the common case of slapping a string into
the metadata.
2011-12-23 07:17:46 -05:00
Colin Walters
3e59cc1305
core: Add --tar-autocreate-parents option for commit
...
The tar files we're making of artifacts don't include parent
directories. Now we could change the builder to make them, but we can
also just autocreate them on import. Mode 0755 with no xattrs seems
OK here.
2011-12-23 06:49:04 -05:00
Colin Walters
4bbc99fb1d
core: Fix build with libarchive disabled
2011-12-22 19:52:30 -05:00
Colin Walters
dab4611263
core: Add --skip-if-unchanged option for commit
...
There's not much point for OS builds to have "empty" commits.
2011-12-22 18:47:30 -05:00
Colin Walters
d8ea31e24e
core: Add some more sanity checks to pull when parsing metadata
2011-12-22 17:00:58 -05:00
Colin Walters
786ce3b560
core: Preemptively error out on paths longer than PATH_MAX
...
Just noticed this while thinking like an attacker.
2011-12-22 16:50:01 -05:00
Colin Walters
3292dcb6d6
core: Allow / in ref names like git does
...
Using / is nice basically.
2011-12-22 15:59:47 -05:00
Colin Walters
9bcd4ff8aa
core: Use global random object
...
We were pointlessly creating a new rand (and thus opening /dev/random)
on every temp file creation, but still using the global rand.
2011-12-22 11:23:16 -05:00
Colin Walters
0018b6d75f
core: Drop unix::is-mountpoint from fast queryinfo flags
...
If this is present, we call access() and stat() on the parent
directory.
2011-12-22 11:07:55 -05:00
Colin Walters
d25f1bf73d
core: Use GFile for repo constructor API, and a bit more internally
...
Also, ensure that the repo directory GFile is absolute - this avoids
a getcwd() syscall every time we construct a GFile object.
2011-12-22 11:04:08 -05:00
Colin Walters
8a499c4a2a
core: Add --recompose option for compose
...
This will allow us to easily regenerate a compose without passing the
full list of components each time.
2011-12-22 10:29:16 -05:00
Colin Walters
e9fd921afe
core: Change compose to operate purely in-memory
...
This is *significantly* faster than checking out each branch into the
real filesystem, then importing it again.
2011-12-21 21:42:13 -05:00
Colin Walters
add55849ab
core: Allow specifying a previous commit tree as a basis for a new commit
...
It's pretty trivial to map a previously existing commit tree into a
mutable tree too. While we're here change the command line arguments
for commit so that we can now properly overlay any combination of
directory, commit, or tarfile.
2011-12-21 20:10:10 -05:00
Colin Walters
c8377c7c5c
core: Expose more details of commit via API
...
Rather than offering high level "commit directory", instead perform
operations on a mtree. Commits are treated more like regular objects.
Change the commit builtin to drive this all at a lower level.
2011-12-21 18:58:44 -05:00
Colin Walters
59281d5901
core: Add omitted mutable tree files
2011-12-21 18:58:27 -05:00
Colin Walters
72257bab2b
core: Rename "store" public APIs to "stage" since that's what they do
2011-12-21 17:13:04 -05:00
Colin Walters
06548f137e
core: Make OstreeRepoFile "public"
...
* "ls" used it
* It's not like our internal API is 100% stable anyways
* The _ is ugly
2011-12-21 13:41:38 -05:00
Colin Walters
2b7a83d1cc
core: Add new "mutable tree" class, use it for tar file import
...
The tar import code forced the resuscitation of a hackish "FileTree"
data type for representing an in-memory tree. Split this out
into an OstreeMutableTree class for future use by any other in-memory
tree construction.
2011-12-21 13:34:10 -05:00
Colin Walters
14d682305b
core: Remove dead code from OstreeRepoFile
...
Originally I thought it would make sense for OstreeRepoFile to be
mutable, and it probably does, but we should do it in a different way.
2011-12-21 11:01:41 -05:00
Colin Walters
0b8754d47c
ostbuild: Separate metadata discovery, kill wrapper scripts
...
Add a simple KEY=VALUE metadata file format, and rather than
assuming 'basename' at a low level, allow passing e.g. NAME=gtk3
to override "gtk+".
The wrapper scripts are annoying...for now let's just remove them.
2011-12-21 10:52:57 -05:00
Colin Walters
835e0eae59
ostbuild: In chroot build, reuse source directory basename
...
This ensures that the output artifacts are named correctly, and not
"source".
2011-12-20 18:45:20 -05:00
Colin Walters
acca018e57
ostbuild: Ensure private libraries are in runtime, and kill .la files
...
A regular libfoo.so not in one of the regular directories should go in
runtime. (Probably we should double check it's a regular file too).
Also, delete .la files unconditionally.
2011-12-20 18:42:27 -05:00
Colin Walters
bdfde03b61
core: Support committing multiple tarballs in the same transaction
...
ostbuild will generate two artifacts: foo-runtime.tar.gz and
foo-devel.tar.gz in the general case. When committing to the devel
tree, it'd be lame (i.e. slower and not atomic) to have to commit
twice.
2011-12-20 17:21:15 -05:00
Colin Walters
5f3b029638
ostbuild: Flesh out chroot build to use ostbuild-user-chroot
...
One thing that made this take significantly longer than it might
have otherwise is that we have to keep PWD "up to date" - otherwise
we hit bugs in glibc's getcwd() implementation.
2011-12-19 21:44:32 -05:00
Colin Walters
11d57d63e3
core: Support --owner-uid and --owner-gid options for commit
...
This allows us to more easily import user-built tarballs into
a root-owned OSTree repo.
2011-12-18 17:36:46 -05:00
Colin Walters
134283afbf
core: In user mode checkouts of archives, use hard links
...
Now that we've done all the gyrations to separate content from
metadata in archives, we can just hard link when doing user checkouts.
2011-12-15 16:12:31 -05:00
Colin Walters
e014b2d9c2
core: Fix a few memory leaks
2011-12-15 15:17:27 -05:00
Colin Walters
9a71ab187d
core: INCOMPATIBLE CHANGE: Split archive files in two parts (meta and content)
...
This will allow us to have hardlink checkouts of archives. A key use
case here is an archive repo of an OS (with root-owned files etc.)
where we want to do builds in a user tree.
A positive side effect of doing things this way is that now the SHA256
checksums for a given file should be identical regardless of whether
it's stored in an archive or bare repository.
2011-12-15 13:14:06 -05:00
Colin Walters
ecbffd4915
core: Don't insert null byte in temporary file names
2011-12-15 13:10:41 -05:00
Colin Walters
8ab2296a70
core: Add utility functions to convert a OstreeObjectType to/from a string
2011-12-15 13:09:51 -05:00
Colin Walters
b8e8b58585
core: INCOMPATIBLE CHANGE: Name repo files with their type (e.g. .dirmeta)
...
This makes inspection easier. Internally the code gets simpler because
metadata and files are more unified; there is just one object type.
2011-12-12 12:29:09 -05:00
Colin Walters
db9b7b7be6
osbuild: Make a MS_NOSUID bind mount over /
...
This closes a serious issue in that we still do a uid switch to 0 when
executing a suid binary, even though we're not gaining capabilities.
2011-12-12 12:13:32 -05:00
Colin Walters
dc4164993b
core: Initialize variables in fsck
...
Otherwise we segfault on an unhandled filename.
2011-12-08 18:23:25 -05:00
Colin Walters
d3058629fd
core: Change fsck to use packfile parsing API
2011-12-08 18:04:37 -05:00
Colin Walters
f6117de8d3
core: s/pack/archived/
...
This completes the rename from the previous commit.
2011-12-08 17:45:37 -05:00
Colin Walters
d6ceb91c35
core: Make ot_transfer_out_value() take a & for the second argument
...
As Ray Strode argued, it's confusing to have something that looks like
a function be magical. And OT_TRANSFER_OUT_VALUE is uglier.
2011-12-08 17:31:45 -05:00
Colin Walters
35fa68a74c
core: INCOMPATIBLE CHANGE: Rename .packfile to .archive
...
It's too confusing that we call the mode "archive" but the actual
files ".packfile". Also, git already has a "packfile" that serves a
totally different purpose.
2011-12-08 17:15:59 -05:00
Colin Walters
30c53a967c
core: Switch is_archive to an enumeration
...
This is in preparation for adding a third mode.
2011-12-08 17:05:16 -05:00
Colin Walters
7932811fbb
core: Delete some dead code
2011-12-08 14:55:41 -05:00
Colin Walters
dccd106731
core: Clean up checkout code
...
Take a GFile * for destination. Also, we only need one recursive
function, not two.
2011-12-08 10:28:44 -05:00
Colin Walters
15d23546ff
user-chroot: Add --unshare-pid, --unshare-net, and --mount-proc
...
To use CLONE_NEWPID we have to actually call clone() because it's
not supported by unshare().
To enable CLONE_NEWPID to be useful, we have to allow creating a new
proc mount rather than binding an existing one.
2011-12-07 10:52:42 -05:00
Colin Walters
fbb09d71a6
ostbuild: Add --unshare-ipc flag for user-chroot
...
This optionally closes down more paths to the host, which is
a good thing.
2011-12-07 09:48:38 -05:00
Colin Walters
d70950e891
core: Add -U option for checkout to skip lchown() and xattrs
...
This is useful for checking out an OS filesystem tree as a regular
user, and not caring about /dev and stuff.
2011-12-06 21:38:04 -05:00
Colin Walters
a94e0b8bf8
core: Ensure we chown created directories too
2011-12-06 20:16:03 -05:00
Colin Walters
c32141c2bf
core: Remove some useless wrapping of packfile unpacking in checkout
2011-12-06 20:09:09 -05:00
Colin Walters
fb5ecdac42
ostbuild: Also allow making directories read-only
2011-12-06 19:36:42 -05:00
Colin Walters
a4b249e333
ostbuild: Clarify "safely" for user-chroot
2011-12-06 14:39:30 -05:00
Colin Walters
d32b2cb572
ostbuild: Recursively make mount points private
...
This ensures we're not going to mutate any global state.
2011-12-06 14:36:57 -05:00
Colin Walters
3042724698
ostbuild: Allow binding arbitrary directories, don't hardcode /proc /dev
...
This is just more flexible, and eventually we want this to be a
generic user-chroot tool.
2011-12-06 14:06:45 -05:00
Colin Walters
0fb40b201f
ostbuild: Ensure user chroot mounts are not shared
...
It's possible that the root filesystem mount is global; we need
to undo that in order to be sure that our "private" bind mounts
really are private.
2011-12-06 12:18:17 -05:00
Colin Walters
e68d0d25c0
ostbuild: Update user-chroot to bind mount /proc and /dev
2011-12-06 10:43:01 -05:00
Colin Walters
ce7345d51e
core: Major cleanup to internal import API
2011-12-05 14:21:18 -05:00
Colin Walters
b8000c00d5
core: Further unify code for importing from local FS and libarchive
...
Note this change makes it so we no longer call link() from an import
filesystem tree to the repository. This is a Good Thing really; it
makes local FS commits slower, but also less prone to corruption.
2011-12-05 11:20:14 -05:00
Colin Walters
267bf8ef4a
core: Ensure we initialize checksum in FIFO case too
2011-12-05 11:15:12 -05:00
Colin Walters
9d39517554
core: Add _from_input variant of checksum API
2011-12-05 10:28:42 -05:00
Colin Walters
7093ed4c57
ostbuild: ostbuild-user-chroot: New Linux-specific utility for safe chroots
2011-12-04 17:09:03 -05:00
Colin Walters
78f435d245
core: Fix handling of hardlinks for tar commits
...
We were creating files with the wrong name. Add a test.
2011-12-04 14:38:30 -05:00
Colin Walters
17cc772cf3
core: Support for committing from any libarchive-supported format
...
We really want the ability to take a .tar.gz and directly import
it into a repository, without creating a temporary filesystem tree.
First, doing it this way is significantly faster. Also, this allows
us to handle importing tar files with e.g. uid 0 files into packed
repositories as non-root, which is very useful for tests and builds.
2011-12-04 14:08:55 -05:00
Colin Walters
f9315e8f82
core: Fix a memory leak in checkout
2011-12-04 14:08:55 -05:00
Colin Walters
45addeadf0
core: Handle NULL xattrs in packfile generation, throw error on invalid mode
2011-12-04 13:12:06 -05:00
Colin Walters
56e0f231b5
core: Correctly map S_ISDIR to G_FILE_TYPE_DIRECTORY
2011-12-04 13:12:06 -05:00
Colin Walters
ae3a5e3c07
core: Clean up filename utility API
...
Remove more unused functions, and change pathname splitting to handle
more cases like duplicate //, and to throw an error on .. as a filename.
2011-12-04 12:12:34 -05:00
Colin Walters
1f6d49cdb9
core: Initialize checksums for non-regular files, handle NULL xattrs
2011-12-04 12:11:29 -05:00
Colin Walters
7545405b73
core: Delete some dead utility code
2011-12-02 19:54:53 -05:00
Colin Walters
0003e101f6
core: New ot_transfer_out_value() macro
...
This makes out values considerably less typing.
2011-12-02 18:17:06 -05:00
Colin Walters
32c8166b25
core: Ensure we clean up leftover directories during merge
...
(Not sure why this regressed)
2011-12-02 17:58:45 -05:00
Colin Walters
3ab69101f7
core: Fix packed file creation
...
We were calculating the wrong checksum, and also mistakenly
not using packed files in archive mode for non-regular files.
2011-12-02 17:49:57 -05:00
Colin Walters
b5ce760678
core: Don't use g_file_delete(), it calls into g_vfs_get_default()
...
For some (probably crazy) reason. Skipping this and calling
unlink() directly makes 'strace' MUCH smaller.
2011-12-02 14:32:25 -05:00
Colin Walters
0d4df5b3fe
core: Avoid reading regular file data twice when archiving
2011-12-02 14:23:01 -05:00
Colin Walters
d1950da1a0
core: Further unify API to create files
...
We now have just one place which writes to the filesystem. Wrap a
temporary file allocation API on top of that.
2011-12-02 13:42:25 -05:00
Colin Walters
c7235182a4
core: Use g_io_error_from_errno() to ensure we have more useful error codes
2011-12-02 11:40:06 -05:00
Colin Walters
7fc625c967
core: Move pack file parsing into core, add ostree_create_file_from_input() API
...
This moves us closer to consistently passing around a triple of:
(GFileInfo *info, GVariant *xattrs, GInputStream *content)
Which will help the libarchive work.
2011-12-02 10:11:09 -05:00
Colin Walters
f98e2a2ddb
core: Tweak dir metadata importing code for libarchive work
...
This will allow us to share a bit more code.
2011-12-01 19:45:00 -05:00
Colin Walters
177d845f5b
core: Modify pack file importer to also optionally checksum
...
For future work on importing from an archive.
2011-12-01 19:25:35 -05:00
Colin Walters
bb0867aeb8
core: Add ot_gfile_create_tmp_symlink()
...
In some cases we'll need the ability to create a symbolic link, then
actually import it.
2011-12-01 19:25:02 -05:00
Colin Walters
23d01d97dd
core: Propagate GCancellable a bit from the import APIs
2011-11-30 22:20:25 -05:00
Colin Walters
702c38739e
core: Drop some dead code from packfile writing, expose GInputStream API too
...
We never actually dropped into the bits to write metadata as packfiles,
because such a thing doesn't exist.
Also add a GInputStream-based API for writing packfiles.
2011-11-30 22:15:05 -05:00
Colin Walters
556662b24c
core: Extract stage_and_checksum() internal API
...
This will be used for staging both metadata and data consistently
before actually importing it.
2011-11-30 21:20:15 -05:00
Colin Walters
99bf19314e
core: Add ot_gfile_create_tmp() to utils, use it
2011-11-30 20:32:06 -05:00
Colin Walters
247e027125
repo: Don't call g_hash_table_destroy on a NULL hash
2011-11-30 20:23:54 -05:00
Colin Walters
e8865af09e
core: Split pull functionality into separate ostree-pull binary
...
This is to avoid everything depending on libsoup.
2011-11-30 09:21:14 -05:00
Colin Walters
654a2c295d
ostbuild: Relicense under LGPLv2+, tweak artifact generation
2011-11-29 16:15:04 -05:00
Colin Walters
84562f161f
core: Use ot_clear_checksum()
2011-11-29 14:06:54 -05:00
Colin Walters
70574c3c06
otutil: New utility functions
2011-11-29 13:42:05 -05:00
Colin Walters
b07b2f6473
core: Remove an unused variable
2011-11-28 20:45:27 -05:00
Colin Walters
cb5b3b15f5
core: checksum builtin: Actually quit main loop on error too
2011-11-28 19:34:54 -05:00
Colin Walters
7e32bc6cd7
core: Make commit always operate on directory contents, not file list
...
This simplifies things significantly, at some cost in flexibility.
We'll later add the ability to e.g. filter out files by regular
expression.
2011-11-28 12:57:25 -05:00
Colin Walters
b296dc4efc
core: Some tweaks to ls output
2011-11-28 10:17:49 -05:00
Colin Walters
86adf002ff
ostbuild: Don't run fakeroot if we are root
...
For efficiency reasons, as well as a quick shortcut to avoid pulling
fakeroot into the gnomeos yocto layer.
2011-11-27 20:31:23 -05:00
Colin Walters
2f1490f766
core: Fix a compiler warning
2011-11-27 20:15:07 -05:00
Colin Walters
87547827c8
core: Add ls builtin
2011-11-27 20:10:48 -05:00
Colin Walters
48507624c2
core: Don't default to "master" for show, there is no default branch anymore
2011-11-27 18:46:11 -05:00
Colin Walters
b0b0ffcd61
core: Add asynchronous checksum API, use it in checksum builtin
2011-11-27 17:21:04 -05:00
Colin Walters
ea858ab558
ostbuild: Split nice/logger program out, merge make/makeinstall into one executable
2011-11-27 13:07:33 -05:00
Colin Walters
6cdea44c4b
daemon: Allow running as non-root in test mode
2011-11-27 11:34:03 -05:00
Colin Walters
fd58e16a8d
core: Minor code cleanup
2011-11-25 12:01:05 -05:00
Colin Walters
fa06a4dcea
ostbuild: Rename osbuild to ostbuild, clean up old C files
2011-11-25 12:00:16 -05:00
Colin Walters
3c025e526f
core: Ad ot_clear_gvariant(), use it
...
This saves us a conditional.
2011-11-22 10:20:10 -05:00
Colin Walters
2bee1bbbdf
core: A bit more daemon work
2011-11-22 10:02:49 -05:00
Colin Walters
aa69aae94e
core: Move merge dirs code into gio utils
2011-11-21 15:04:07 -05:00
Colin Walters
c117aadc95
core: Stub out a system daemon
2011-11-20 20:55:24 -05:00
Colin Walters
1dbf134946
core: Rework argument parsing
...
Default to /sysroot/ostree/repo when run as root. Also better
handle the requires-repo flag.
2011-11-19 14:02:21 -05:00
Colin Walters
dce29a984a
core: Ensure data is properly initialized
...
Avoids a crash if we bail early.
2011-11-19 10:45:53 -05:00
Colin Walters
a042731673
core: Add local-clone builtin
...
This is useful for converting between e.g. archive and non-archive
repositories.
2011-11-18 18:50:53 -05:00
Colin Walters
b7a45b5815
core: Also chown() after unpacking objects
2011-11-18 18:50:29 -05:00
Colin Walters
7d63ad5ae8
core: Switch to GFile* for unpacking and storing objects
2011-11-18 16:14:01 -05:00
Colin Walters
c66474750b
core: Expose API to get repository tmpdir
2011-11-18 16:01:28 -05:00
Colin Walters
f6ec479f17
core: Rework object iteration API to be GFile based and pass more data
...
It makes more sense to have e.g. the details of .packfile naming
inside the repo, and pass the expected checksum and type.
2011-11-18 15:21:32 -05:00
Colin Walters
8621eb85b1
core: Skip an unnecessary unlink() call
2011-11-18 09:41:36 -05:00
Colin Walters
7276e2df43
core: Have single "overwrite" flag instead of ignore_exists+force pair
...
The default is always ignore_exists. Also port the internals here
to use more GIO code, and stop using *at syscall variants since they're
only useful if used 100%.
2011-11-18 09:37:25 -05:00
Colin Walters
860c3cf502
core: Convert public get_object_path() to GFile*
2011-11-18 09:04:25 -05:00
Colin Walters
9cf15ed151
core: More cleanup of GIO utility API
2011-11-18 08:43:47 -05:00
Colin Walters
231f7ed76c
core: Use ot_gfile_ prefix for new local GFile creation function
2011-11-18 08:10:23 -05:00
Colin Walters
6591e586ed
core: Remove last user of g_file_new()
2011-11-18 08:02:19 -05:00
Colin Walters
12f2d89174
core: Add checksum builtin
...
This necessitated reworking things so that builtins can specify no
--repo is required.
2011-11-18 07:29:13 -05:00
Colin Walters
7f64d5cec7
core: Make checksum API also operate on directories
2011-11-18 06:34:54 -05:00
Colin Walters
b8cef545d1
core: CHANGE CHECKSUM ALGORITHM, port checksum API to GFile
...
This commit originally was to port ostree_stat_and_checksum_file() to
GFile*, but I noticed that the checksum code was reading data in host
endianness. Fix that while we're here.
This invalidates all existing repositories.
2011-11-17 19:32:01 -05:00
Colin Walters
2c2b9c0e00
core: Convert metadata parsing API to GFile
2011-11-17 18:36:57 -05:00
Colin Walters
218684786d
core: Use GFile for xattr API
2011-11-17 18:33:26 -05:00
Colin Walters
a8735778f0
core: Use ot_gfile_get_path_cached() pervasively
...
This requires no free() calls and is just better.
2011-11-17 18:23:36 -05:00
Colin Walters
8e9b9c59d6
core: Fix pull to actually download files too
2011-11-17 10:40:55 -05:00
Colin Walters
ed2be6306d
core: Should write remote refs in refs/<remote>/<branch>
...
Not just refs/<branch>, otherwise multiple remotes conflict.
2011-11-17 10:40:01 -05:00
Colin Walters
db9801bff2
core: Allow resolving e.g. "origin/master" as a rev
...
Also:
* Disallow .. in revs to avoid looking outside where we should be
* Allow resolving empty revs
2011-11-17 10:36:04 -05:00
Colin Walters
aa865bbb83
core: Validate file names read from directory variants
...
In a future where we pull data from remote servers, we don't want
to allow path uplinks.
2011-11-16 23:23:30 -05:00
Colin Walters
4a26be1bef
core: diff: Correctly handle files changing type
2011-11-16 23:09:32 -05:00
Colin Walters
c33db03b4c
core: Flesh out diff a bit more
...
Now correctly notices changes to directory metadata (not just
contents).
2011-11-16 22:51:09 -05:00
Colin Walters
115626c264
core: Fix a minor memory leak
2011-11-16 22:51:09 -05:00
Colin Walters
9fb390664a
core: Implement diff command
2011-11-16 18:16:41 -05:00
Colin Walters
97e82447c6
core: Add --print-packfile argument for show
...
Just another debugging tool.
2011-11-15 15:16:38 -05:00
Colin Walters
d196a47043
core: We actually want rdev, not dev for devices
2011-11-15 15:15:46 -05:00
Colin Walters
18f0b537a4
build: Move sources into src/ again
...
This is necessary if we want to build when srcdir == builddir,
otherwise we blow up because "ostree" is a source directory and a
binary.
2011-11-14 15:39:38 -05:00
Colin Walters
21c7ff74b6
De-recursify source tree
2011-11-02 15:45:32 -04:00
Colin Walters
2b00cf3810
core: add ^ for rev-parse
2011-11-02 13:22:13 -04:00
Colin Walters
796dc7fc57
core: remove stub http backend for now
...
The plain http pull is probably good enough.
2011-11-02 12:43:25 -04:00
Colin Walters
8f877c5b65
log: Fix a crash
2011-11-01 12:24:34 -04:00
Colin Walters
bab31db7ee
core: Squash some memory leaks
2011-11-01 12:20:33 -04:00
Colin Walters
a897642315
For archive checkouts, actually unpack the packfiles
2011-11-01 10:59:07 -04:00
Colin Walters
8769f4afd8
Switch to big-endian storage for all variant data
...
This ensures the saved archives are architecture-independent.
2011-10-31 22:41:50 -04:00
Colin Walters
a160a2a5fa
Add support for pulling from remote archives
...
This necessitated a large set of changes.
We now support an "archive" mode for repositories. In this mode,
files are stored "packed" rather than hard linked. This allows one to
e.g. store an OSTree repository with root-owned files as non-root. It
is also used as the basis for serving repositories via HTTP.
While doing this I realized that GVariant is endianness-dependent; I
decided to just store all data in big endian.
2011-10-31 20:28:47 -04:00
Colin Walters
80fcb3b818
checkout: Use ot_util_new_file_for_path
2011-10-31 20:22:34 -04:00
Colin Walters
d2938ad6cc
core: Add "ostree remote add"
2011-10-28 10:25:36 -04:00
Colin Walters
ee4edf114b
Don't default to "master", require a branch
...
It doesn't really make sense to have a default branch, since we expect
people to have multiple roots. Thus, require a branch
specification always.
2011-10-27 21:42:44 -04:00
Colin Walters
dd13d172ef
core: Add rev-parse builtin
2011-10-27 15:44:08 -04:00
Colin Walters
d0222ce6c8
fsck: Kill unused variable
2011-10-27 15:41:15 -04:00
Colin Walters
7ca1c3d2e7
core: remove HEAD file, use branches instead
...
HEAD in git describes a working copy, and we don't have those.
Instead, default to a "master" branch. This also lets us support
multiple branches.
2011-10-27 14:32:05 -04:00
Colin Walters
66011a84e5
init: Add branches, tags, refs directories like git
2011-10-26 22:37:23 -04:00
Colin Walters
ac99188c23
core: Add a config file with repo version
...
This should let us expand later.
2011-10-26 22:21:00 -04:00
Colin Walters
d0b3a07cf1
core: Fix checksum for symlinks walking off into uninitialized memory
2011-10-26 18:33:33 -04:00
Colin Walters
03943c659f
Drop glib requrirement to 2.28
...
This lets it build on more currently-released systems like Fedora 15.
2011-10-26 14:12:13 -04:00
Colin Walters
4d86ee0a1d
Pile of work on parallel-debian
2011-10-24 22:02:16 -04:00
Colin Walters
5146890457
Move triggers into new builtin: ostree run-triggers
2011-10-21 09:55:39 -04:00
Colin Walters
4d39070efd
Fix up triggers and gnomeos-make-image.sh
...
Now both do something.
2011-10-20 17:24:21 -04:00
Colin Walters
a2880a6ddd
src: Squash some unused variables
2011-10-20 16:30:34 -04:00
Colin Walters
9d8522dfa1
Some initial work on triggers
2011-10-20 16:12:02 -04:00
Colin Walters
b7d45436a0
Don't use g_variant_new_from_fixed_array(), it was only added in 2.31
...
g_variant_new_from_data() works, and actually allows us to avoid
a memdup()/free().
2011-10-20 10:20:51 -04:00
Colin Walters
aa25334286
repo: Only open regular files
...
Otherwise we'll try to open device files with predictably bad
consequences.
2011-10-19 18:06:06 -04:00
Colin Walters
961b1c80db
Do "bare" repositories by default
...
Mixing the repository and checkouts is discouraged.
2011-10-19 17:45:00 -04:00
Colin Walters
b27df6fd72
"Hacktree" is now known as "OSTree"
...
It just sounds better.
2011-10-18 14:44:48 -04:00
Colin Walters
a06f724b72
src: Only use local VFS - this avoids hitting up the session bus
...
We are designed to run in the "unix model" of being forked a lot, so
startup time matters a lot, and hitting the session bus adds
unnecessary DBus traffic, shows up in strace etc.
It's a microoptimization I admit.
2011-10-17 15:55:06 -04:00
Colin Walters
97003b48da
Add log builtin
...
The "less" spawning is buggy for some reason =(
2011-10-15 15:43:43 -04:00
Colin Walters
717945814c
Save root directory permissions in commit
2011-10-15 14:20:22 -04:00
Colin Walters
c768c2a746
Support for committing files from stdin or a file list file
2011-10-15 13:07:26 -04:00
Colin Walters
36ba6e5426
Ensure we don't get duplicate '.' which leads to corruption
...
In path_split(), we squash '.' entirely, since it's redundant and if
we don't, we return an extra component which callers would then have
to handle.
In repo, ensure we're never explicitly parsing '.' either (yet).
2011-10-15 13:04:50 -04:00
Colin Walters
2bd973f645
Make file deletion work, add test
2011-10-15 09:56:31 -04:00
Colin Walters
05c35f2cf7
Actually checksum xattr values, not just names
...
We need to call lgetxattr() and not just llistxattr().
2011-10-15 03:03:51 -04:00
Colin Walters
88c9851795
repo: Fix nested tree code
2011-10-15 03:02:51 -04:00
Colin Walters
7cffd09f6d
repo: Fix format string bug
2011-10-15 02:39:47 -04:00
Colin Walters
3eb77d4ce8
Importing and checking out nested trees works!
2011-10-15 01:23:01 -04:00
Colin Walters
6f1b880377
repo: Allow empty commit bodies
2011-10-15 00:57:13 -04:00
Colin Walters
401ab27c11
checkout: New command
2011-10-15 00:45:07 -04:00
Colin Walters
3f12aa7bbd
repo: Use 'self' in headers too
2011-10-14 23:24:51 -04:00
Colin Walters
f16aad3710
We can commit multiple times now
2011-10-14 23:17:50 -04:00
Colin Walters
ce6d9ca569
repo: Add some GError guards
2011-10-14 23:13:23 -04:00
Colin Walters
72c7385295
repo: Update HEAD after a commit
2011-10-14 22:56:40 -04:00
Colin Walters
9cac933c7f
show: New builtin
2011-10-14 22:49:44 -04:00
Colin Walters
9e0e481835
repo: Fix some bugs loading variants
2011-10-14 22:49:28 -04:00
Colin Walters
0b851a743e
Store objects with an extension so we know whether they're files or metadata
2011-10-14 22:30:18 -04:00
Colin Walters
3a9e2b36b0
fsck: Not an error to have 1-linked objects, also print HEAD
2011-10-14 22:10:06 -04:00
Colin Walters
b3c556a349
repo: Add API to load variants, and get HEAD
2011-10-14 22:10:06 -04:00
Colin Walters
55b3c7ca69
repo: Ignore importing existing variants
...
It's not an error to duplicate a tree.
2011-10-14 22:07:58 -04:00
Colin Walters
98a043c671
Add probably working commits
2011-10-14 21:09:11 -04:00
Colin Walters
0808b94600
fsck: Add quiet option
2011-10-12 16:43:52 -04:00
Colin Walters
ea96d5bf89
Fix option processing, add some options to link-file
2011-10-12 13:45:19 -04:00
Colin Walters
cd3a56dd68
Don't include any timestamps in hash, add fsck command
2011-10-12 11:38:41 -04:00
Colin Walters
4dd6800389
Make link-file work
2011-10-11 22:05:16 -04:00
Colin Walters
7c1c61beb1
Write some code for importing
2011-10-11 20:58:50 -04:00
Colin Walters
a2ffbdd0a4
Switch to GLib
2011-10-11 14:26:48 -04:00
Colin Walters
73a4b1a5f1
Rename from gbuild to hacktree
2011-10-10 18:46:57 -04:00
Colin Walters
f874ac043d
Initial commit
2011-10-09 17:03:08 -04:00