Age | Commit message (Collapse) | Author | Files | Lines |
|
Previously, the object hash computed by `git for-each-ref` was the value
we cached in the 'previous_hash' file. If the matching ref was an
annotated tag, then this was the tag's hash, not the commit hash it
pointed to.
Now, always dereference tags to their commit object, and store this
value instead. This consistency will improve the web UX in my opinion.
Signed-off-by: Malfurious <m@lfurio.us>
|
|
For some consistency, initialize repos' previous_hash to the NULL hash
(all zeros). This should prevent empty values on the user interface.
Signed-off-by: Malfurious <m@lfurio.us>
|
|
Previously (and as is the default behavior in git), when cloning fresh
cache repositories for user services, we would acquire current
remote-tracking branches, tags, and a local branch tracking origin/HEAD.
In practice, this local branch becomes vestigial. As we fetch updates,
we always checkout by commit hash and leave the repository in a detached
HEAD. The local branch reference is therefore never updated. This is
fine for the functionality of ACID. However, if querying the repo for
information about the current version, it is possible for tools like
`git describe` to describe HEAD in terms of this stale branch ref.
Now, when we clone a repository arrange for there to be no 'local'
branch references. Only remote-tracking branches and tags.
Remote-tracking branches are properly updated and removed by our fetch
command. Additionally, prevent the remote 'origin/HEAD' symbolic ref,
since it would be mildly confusing for it to pop up to the user as well.
In effect, we limit our ref namespace only to branches and tags that
actually exist on the remote host.
Signed-off-by: Malfurious <m@lfurio.us>
|
|
This seems like a more consistent behavior. Also, I would like to embed
the git hash into the build log record somehow. Returning all zeroes in
an error case allows the main script to simply pass along the result
instead of worrying about an edge case.
Signed-off-by: Malfurious <m@lfurio.us>
|
|
I need something more complicated than just 1 new directory for logs, so
let's go to the trouble now of merging the persistent volumes together
and use subdirectories/files. The default location is now '/data'.
To aid similar changes in the future, the locations of these persistent
files are no longer hard-coded in the source, but defined by global
shell variables.
Additionally, a bug is fixed which impacted our ability to accurately
clean old logs and calculate the next job number.
Signed-off-by: Malfurious <m@lfurio.us>
|
|
As I add new components to the cychedelic system, it would be best to
use more specific naming. 'cychedelic' is the name of the project,
whereas 'acid' is the name of this program.
Signed-off-by: Malfurious <m@lfurio.us>
|