4 ms·
Is Git really suitable for deployment? I thought that Git have full history of the past versions which moves a lot extra bytes when you are firing up a new inst
by liuliu 16y ago
Is Git really suitable for deployment? I thought that Git have full history of the past versions which moves a lot extra bytes when you are firing up a new instance. It may be interesting if one could use git's pull/push to have some distributed deployment system (still far from BT protocol based one, but interesting topic though).
- sh1mmer 16y agoIf you tag a release I don't see why you couldn't just pull the release only.
- josegonzalez 16y agoI think you are searching for something like murder https://github.com/lg/murder https://github.com/lg/murder . In any case, I fail to see how this is any more useful than Capistrano. Just being able to push arbitrary tree-ish hashes to a specific environment isn't very special, as that can arguably already be done with Capistrano.
- meskyanichi 16y agoIt is not _just_ about pushing though. It is also about the modularity and additional server provisioning that it adds. You define your environment through modules, and Git Pusshuten helps you set it up, at least enough to get up and running really quick. Of course, it isn't for everyone. Just like a VPS isn't for everyone, and just like Heroku isn't for everyone. This also introduces perhaps a new workflow to many people, if you already work with Git. As you said, it isn't very special pushing any branch to any remote location. However, it has not yet been done by anyone else yet (from what I can see, I might be wrong). For a lot of people, (again, not everyone), it is a joy to be able to spin up a VPS, being able to provision it with pre-configured settings and common dependencies with a few commands, and being able to have your application live in a matter of a few minutes without needing almost _any_ knowledge of Linux.
- frb 16y agoI'm in the process of finishing two side-projects and just started thinking about deployment. I wasn't sure what to use for deployment, as I just wanted to run two web-apps on a VPS. This is definitely what I'm going to use. Of course it isn't for everyone and every project, but it's good (and simple) enough for me. Every project has different requirements for deployment and I sure appreciate the option to chose from a variety of tools.
- necubi 16y agoFrankly, trying to do anything even slightly off the beaten path with capistrano leads to madness in my experience. If this is simpler to extend past just deploying rails apps I can definitely see a place for it in my workflow.
- mcmatterson 16y agoWe wrote and use minicap (https://github.com/well/minicap https://github.com/well/minicap) to help with this. The problem with capistrano is that it tries to abstract a bit too much of the underlying project and deployment environment away. minicap aims to fix that by providing a minimal, git-centric remote footprint. cap provides a great foundation, but makes a couple of mistakes in its recipes that are easily remedied with a minimalist approach like we've taken in minicap.
- jallmann 16y agoYeah, I've been wondering if there was a git equivalent to svn export. Haven't bothered enough to actually look for it though.
- mark_h 16y ago"git archive" is the closest to what you're looking for I think (although, that only creates a zip or tar archive, so you need to add an extra step -- by default it writes to stdout though so it's not too hard)
- donw 16y agoThe little sysadmin in the back of my head says 'no', but I can see this sort of thing being very useful for small projects. For companies with security and/or compliance needs, or paranoid people like me, it's more-or-less vital to keep development and production separated, and to firewall the hell out of what production can actually go out and get, as well as to tightly control who and what has access to the servers. Most systems like this make the assumption that you've got full root-level access via SSH, which is often not the case. Likewise, I don't see anything for handling multiple servers (maybe I missed that?).
- meskyanichi 16y agoThis is correct. If you rely on a lot of security then maybe you should be considering a different deployment method, or write a module that does exactly what you want to do. It is modular so there is the probability you could accomplish what you want. Also, the project just released a few days ago, mainly to say it's there, if anyone wants to contribute or provide feedback that would be very much appreciated. It is still in a _very_ early stage, hence the version 0.0.x so it could really go in a lot of directions, mainly based on input from the community and guys like you. There is a lot of room for improvement. That said, any piece of information, advice and feedback is most certainly welcome!
- deleted 16y ago[deleted]
- wgj 16y agoCapistrano's setting: set :git_shallow_clone, 1 takes care of this. I think this translates directly to a --depth parameter on git clone.