summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* starter for new lorry_pluginbaserock/ps/add-lorryPaul Sherwood2013-11-241-0/+67
|
* Merge remote-tracking branch ↵Lars Wirzenius2013-11-2215-143/+1599
|\ | | | | | | 'origin/baserock/richardmaw/S9475/build-refactor-foundations-v2'
| * morphlib: Add branch context managersRichard Maw2013-11-223-0/+490
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds a LocalRefManager, which handles ref updates to local repositories (i.e. your workspace). It provides proxy methods for ref updates to a set of repositories. If an exception occurs in the body of the context manager, the updates will be rolled back to before the context manager was entered. The purpose for using a LocalRefManager instead of making the changes to the repositories directly, is to provide atomic updates to a set of refs in a set of repositories, where all refs are updated, or none are. This also adds a RemoteRefManager, which handles pushing branches to remote repositories. It provides a proxy push method, which will delete pushed branches, and re-push deleted branches after the context manager exits. Its purpose, instead of providing atomic updates to remote repositories, is to provide temporary branches. This is because it is used to provide temporary build branches. The difference between atomic update and temporary push, is that the remote branches are deleted when the context is left, rather than kept, as LocalRefManager does. The RemoteRefManager currently cannot provide the same atomicity guarantees as the LocalRefManager, so if there is a push between the branch being created and the RemoteRefManager cleaning it up, that change is lost without RemoteRefManager even knowing it existed. Git 1.8.5 will add functionality to make this possible.
| * GitDir: Add remote.push(RefSpec...)Richard Maw2013-11-222-0/+300
| | | | | | | | | | | | | | | | Remotes have a push method, which takes multiple RefSpecs, runs git push using arguments derived from the set of refspecs, then returns the push's result. If it fails the push, it will return the result in the exception.
| * GitDir: Add support for push urls in RemoteRichard Maw2013-11-222-19/+56
| |
| * GitDir: Split out Remote objectRichard Maw2013-11-223-25/+74
| | | | | | | | Operations on remotes are now accessed through this proxy object.
| * GitDir: Add methods for ref managementRichard Maw2013-11-222-0/+201
| |
| * GitDir: Add GitDirectory.commit_tree() methodRichard Maw2013-11-222-0/+53
| | | | | | | | | | This is used to create commit objects. This is used by build without commit to provide the behind-the-scenes history.
| * gitindex: Add GitIndex.write_tree()Richard Maw2013-11-222-0/+9
| | | | | | | | | | This generates a tree object from the index. This can then be used to create a commit.
| * gitindex: Add GitIndex.add_files_from_working_tree()Richard Maw2013-11-222-0/+43
| | | | | | | | | | | | | | | | | | | | This is like GitIndex.add_files_from_index_info, but uses the working tree and a list of paths. This is more convenient when the changes exist in the working tree. The comment describes its relationship with GitIndex.add_files_from_index_info, but it is faster, since it calls out to `git add` rather than calling out to `git hash-object` for every file.
| * gitindex: Add GitIndex.add_files_from_index_info()Richard Maw2013-11-222-0/+31
| | | | | | | | | | | | This is used to add files directly to the index, without touching the working tree. This is used in the build without commit code for creating new morphologies pointing to different branches.
| * gitindex: Add GitIndex.set_to_tree(treeish) methodRichard Maw2013-11-222-0/+13
| | | | | | | | | | | | | | This is used to set the state of the index to that of a previously known commit. This is needed for the build without commit logic, so that commits generated are that of the last commit in the repository and anything uncommitted.
| * GitDir: Add GitIndex classRichard Maw2013-11-226-38/+165
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This represents the state of the index of a GitDirectory. Methods that use the index are now used via the GitIndex class, rather than using the default index, as previously used when the methods were in GitDirectory. GitIndex may be constructed with an alternative path, which can be used to manipulate a git checkout without altering a developer's view of the repository i.e. The working tree and default index. This is needed for `morph build` and `morph deploy` to handle the build without commit logic.
| * GitDir: add store_blob methodRichard Maw2013-11-222-0/+28
| | | | | | | | This is needed for making commits without touching the workspace.
| * util: Add helper for splitting up huge iterablesRichard Maw2013-11-222-0/+21
| | | | | | | | | | | | | | | | This is used to split a large iterable into more manageable chunks. This is important when a consumer can only handle so much input at once e.g. A program can take a large, but finite number of arguments, xargs exists to handle this for shell programs.
| * MorphologySet: Export traverse_specs methodRichard Maw2013-11-221-6/+6
| | | | | | | | | | | | | | | | The set of helpers isn't helping for re-usability, since every new use for the traverse_specs method is different enough that it is only used in one place. So just export traverse_specs itself and be done with it.
| * GitDir: Add resolve_ref_to_{commit,tree} methodsRichard Maw2013-11-222-5/+22
| | | | | | | | | | | | | | | | | | | | | | | | Some APIs should take SHA1 object IDs, there needs to be a way to get one from a ref. To handle this, we add APIs for getting either the commit or the tree pointed to by the ref. Commits are provided because we need to create commits from existing commits and update refs from existing values. Trees are provided because we need trees to create commits, and we can read trees into the index to eventually create another tree.
| * GitDir: Provide more specific object access than cat-fileRichard Maw2013-11-222-5/+29
| | | | | | | | | | | | | | We need to use cat-file for files by SHA1, commits by SHA1 and files by ref and path, so provide access in separate methods, since while it's all the same thing "under the hood", it avoids the user needing to know the command-line syntax.
| * GitDir: Allow config values ending in whitespaceRichard Maw2013-11-221-2/+2
| |
| * GitDir: remove duplicate definition of update_remotesRichard Maw2013-11-221-4/+0
| |
| * Remove unused invent_new_branch methodRichard Maw2013-11-221-12/+0
| |
| * yarns: Also output error messages to terminalRichard Maw2013-11-221-0/+3
| | | | | | | | | | Saving the result is useful for the tests, but diagnostics of failures are quicker if the result is printed to the terminal as well.
| * tests: Run style check before slower testsRichard Maw2013-11-212-59/+85
|/ | | | | | | | | | It turns out that only the check-copyright-year script was exiting properly, but it was not doing the deferred exit that other tests were doing. Other tests would set errors=1, then later check the result and exit if it's non-zero, however the errors variable was set in a sub-shell, since it was on the right-hand side of a pipe.
* Update the README and NEWS file to the new versionbaserock-12Pedro Alvarez2013-11-112-4/+22
|
* Fix typoRichard Ipsum2013-11-061-1/+1
|
* Merge remote-tracking branch 'refs/remotes/origin/danielfirth/S9122'Lars Wirzenius2013-11-061-162/+0
|\
| * Removed ssh.configure extensionDan Firth2013-10-081-162/+0
| |
* | Merge remote-tracking branch 'origin/danielfirth/language-changes'Lars Wirzenius2013-11-058-138/+126
|\ \ | | | | | | | | | | | | | | | Needed to update copyright years when merging. Don't understand why the problem didn't show up earlier, since it doesn't seem to have been caused by Dan's changes.
| * | Standardizes language and refactors some implementation stepsDaniel Firth2013-11-056-136/+124
| | |
* | | Merge branch 'liw/rac-escape-url'Lars Wirzenius2013-11-042-1/+8
|\ \ \ | |/ / |/| | | | | | | | Reviewed-by: Richard Ipsum Reviewed-by: Pedro Alvarez
| * | Fix RemoteArtifactCache to quote filenames in URLsLars Wirzenius2013-11-042-1/+8
|/ / | | | | | | This will allow fetching of gtk+ artifacts.
* | Added scenario test to prevent morph edit from being used without a system ↵Daniel Firth2013-11-013-1/+17
| | | | | | | | argument
* | Added scenario test for preventing building uncommitted systemsDaniel Firth2013-11-013-1/+29
| |
* | Merge remote-tracking branch 'origin/pedroalvarez/S9428'Lars Wirzenius2013-11-014-12/+39
|\ \
| * | Add regression test, morph branch doesn't remove existing branch dirPedro Alvarez2013-10-311-0/+20
| | |
| * | Some tests refactorized for better understanding.Pedro Alvarez2013-10-312-12/+16
| | |
| * | Don't remove an existing branch in 'morph branch'Pedro Alvarez2013-10-311-0/+3
|/ /
* | Merge branch 'pedroalvarez/cmdtest-definitive2'Pedro Alvarez2013-10-312-0/+20
|\ \ | | | | | | | | | | | | | | | Reviewed-by: Dan Firth: +1 Richard Ipsum: +1
| * | Modify morph test suite to use the new cmdtestPedro Alvarez2013-10-302-0/+20
|/ /
* | Deploying a non-cluster morphology now displays an error messageDaniel Firth2013-10-303-1/+22
| |
* | Added scenario test for preventing cross-buildingDaniel Firth2013-10-305-2/+52
| |
* | Merge remote-tracking branch 'origin/liw/cache-server-settings'Lars Wirzenius2013-10-293-4/+37
|\ \ | | | | | | | | | Reviewed-by: Daniel Silverstone
| * | Add --artifact-cache-server and --git-resolve-cache-serverLars Wirzenius2013-10-293-4/+37
|/ /
* | Merge remote-tracking branch 'origin/pedroalvarez/S9240'Lars Wirzenius2013-10-283-3/+39
|\ \ | | | | | | | | | | | | Reviewed-by: Lars Wirzenius Reviewed-by: Dan Firth
| * | Adding testPedro Alvarez2013-10-282-1/+36
| | |
| * | Building with references to tags will now instead use the underlying commitDaniel Firth2013-10-281-2/+3
|/ /
* | Exlcuding yarn files when checking the lenght of linesPedro Alvarez2013-10-281-0/+3
| |
* | Tidy up debug output of morph buildDaniel Firth2013-10-284-13/+11
| |
* | Merge remote-tracking branch 'origin/liw/fstab.configure'Lars Wirzenius2013-10-243-0/+179
|\ \ | | | | | | | | | | | | | | | | | | Reviewed-by: Richard Maw At his suggestion, fixed the call to sorted() to be a call to asciibetical().
| * | Add fstab.configureLars Wirzenius2013-10-243-0/+179
| | | | | | | | | | | | | | | This will allow the user to append text to /etc/fstab during a deployment, without having to write custom configuration extensions.