Hacker News new | ask | show | jobs
by tomxor 2942 days ago
I wrote a git-tag based cli content deployment tool that does something like this as part of the deploy stage. It's intended for use with multiple users with a single remote, so before attempting to deploy anything it does the following to ensure no conflicts and that outdated content is never accidentally deployed:

    - Fetches
    - Checks the branch you are deploying from hasn't diverged from it's tracking branch.
    - Checks whether each path+tree-object combo trying to be deployed has already been tagged.
    - Checks whether each tree path being deployed is clean.
    - Finally, if it fails to push new tags it reverts everything to prevent deploys unavailable to everyone else.
I built this for a special type of content deployment for the company I work for but I think it's only been used internally so far (albeit successfully) - I made the tool as generalised as possible though as the core concept is quite re-usable, but I don't think I have described it's purpose clearly enough for the rest of the world in the readme:

https://github.com/LearningScience/pegit