Hot answers tagged

52

I have tested this at home (~ 3 hosts) for some time now, trying different scms (RCS, Subversion, git). The setup that works perfectly for me right now is git with the setgitperms hook. Things you need to consider: Handling of file permissions and ownership RCS: does this natively Subversion: last I tried, you needed a wrapper around svn to do this git: ...


28

I've done it informally with git, but there's also the etckeeper project which is a more completist and detailed implementation.


23

Another option is to use an automated server configuration tool like Puppet or Cfengine to script your server configurations in a declarative language. It's extra work on the front-end, but using a utility like Puppet allows you to automatically rebuild and configure a server with very little human intervention.


20

If you are using apache: <Directory ~ "\.svn"> Order allow,deny Deny from all </Directory> That will block people from accessing .svn directories remotely (using the browser) but you can keep then (and svn capabilities) on the project. BTW you can substitute \.svn for \.git or \.cvs if you are using something different than subversion....


15

Disclaimer: I am one of the developers of Puppet. The obvious way is to just apply the concepts: define a cycle of development/test/production, and push changes through them. Use version control to track systems. In short order, starting down that path leads to discovering that you really want tools that automate those things - essentially, that you want ...


15

Short answer is "OS deployment management", "Configuration Management" and "Software Packaging". Long answer follows. I'd like to add to Daniel Pittman's reply with a breakdown of what forms a "system" in systems administration. A system or an environment is going to comprise of: Servers Operating System Configuration Vendor packages; and Local packages ...


11

You can read about it in exorbitant detail in the HTTP specification, but here's the gist: when the browser needs to request a file, it first checks its local cache. There are three main possibilities: The browser has a local (cached) version of the file that is marked as expiring as a certain time, and that time is in the future. In this case, the browser ...


10

I have been experimenting with etckeeper which seems to work pretty well. I doesn't require a centralized server, which may be important in some situations. You can use several different DVCS backends, so you can choose the one you are most familiar with. It seems to work very well for me, but I haven't tried getting the other techs where I work to start ...


10

It's helpful to have everything versioned, even for designers. And if implemented well with good training, I think they'll find it more helpful than burdensome. If you're just starting out, I'd strongly suggest using a distributed version control system like git or mercurial. This is the general trend in the world, and there are a lot of advantages. It's ...


9

It depends on how you have your server configured to serve content. If over ssh: git clone user@192.168.100.18:repo/repository.git or if a webserver is providing the content (http or https) https://user@192.168.100.18/repo/repository.git or if available via a file path: git clone file://path/to/repo or if the server is running the git daemon: ...


8

Offsite is good, but if it's pushed via network then it's not enough. Imagine someone breaking into your main server, which contains credentials to your off-site backup server. Ta-da, all your data - including backups - is on the mercy of the cracker. Physical backups on DVDs stored off-site is way safer than any of these cloud hacks, IMHO. Possibly you ...


7

My answer to that question would always be: ask the users, in your case the developers. IT systems do not have an intrinsic value of their own, they always fulfill a role within the context of the business they are used in. Therefore the better you can make them do what is needed in that context, the better for the business. Some more specific answers: ...


7

The manual for git-clone says: Git natively supports ssh, git, http, https, ftp, ftps, and rsync protocols Note that SMB is not in the list. When running git on Windows, the //host/path syntax works because the OS supports it natively - SMB remote paths can be used anywhere a local path can be used. That is not the case in unix, where SMB is an alien ...


6

This situation is fairly well documented. Check out the "Collaborating with other people" section of the very useful HG Book. In short, you can configure ssh access to the Mercurial repository, and limit access to specific users. Some more reference guides: Multiple Committers Guide TortoiseHg


6

I have been looking into Chef lately. Not only does it keep templatable (.erb) configs in version control, but allows you to perform actions (like restarting a service after you uploaded the configs to the node). Chef helps with package management so you can verify dependencies with any node you interface with (i.e. has to have sudo package installed). ...


6

http://mercurial.selenic.com/wiki/CGIinstall says under "Setup a cgi script to refer to your repository" Copy the hgweb.cgi script from the mercurial sources to /var/www/cgi-hg/index.cgi So it appears you need to download the source version to get that file.


6

You'll find that they are very much of a muchness when it comes to binary files. The mutterings you have heard are most likely originating from the notion that version controlling binaries is a little bit at odds with the power of version control. Binary files can't be diffed or merged, so they are treated as dumb copies. The whole file is replaced on every ...


6

VisualSVN Server allows you to manage svn repository permissions using AD users and groups. And the standard edition is free and meets most organization's needs.


6

If you're on a Linux/UNIX commandline: svn status | grep '\?' | awk '{print $2;}' | xargs svn add


6

Like this : Visit your site in Internet Explorer. Click on Continue to this website (not recommended) Click on Certificate Error in the red colored address bar Click on View certificates In the Certificate dialog, press Install Certificate In the Certificate Import Wizard, click Next On page 2 of the wizard, select Place all certificates in the following ...


6

The canonical answer to this is: Use what you are familiar with. Since you are not familiar with either, it's a really close call. So here is a semi-philosophical argument: Debian is an original community distribution. Do you value a direct feedback channel and the possibility to shape the future of what you use? CentOS is a community distribution based ...


5

I am assuming you are using one of the mayor distributions If I needed to do the same as you I would use git for everything related to config files (/etc, /usr/local/etc, etc) I would avoid to version bin files unless you are compiling your own packages. And I would use the native package manager of each distribution to replicate the installation of the ...


5

The two classic web-based project management system with VCS integration and issue tracking are: Redmine (based on Ruby) Trac


5

Don't reinvent the wheel. The tools exist to do what you need. You may want to look at bcfg2, especially since you seem to be particularly focused on configuration files. Think about services, too. Where does the central repository need to be in relation to the production server? Maybe an intermediate option could be carful modification of the output of the ...


5

You are much better off tracking changes inside the machine, as git etc. won't work very well with a large binary blob like a VM disk image. To be able to roll back to another state, snapshots are an excellent solution, but they have a performance impact. The best method (IMHO) is to use a configuration management tool (e.g. Puppet) and track the changes ...


5

Sorry man but you're stuck. The versioning must be enabled to get access to previous versions. With versioning disabled or with versioning suspended, you can not retrieve changelogs of any sort. The file is simply overwritten. If a null version already exists in a bucket, the null version is overwritten, as shown in the following figure. ...


4

It isn't subversion but it is an all in one solution like you want. Look at fossil I've had good luck using it for personal projects.


4

Another option made for multimedia and creative workflows is AlienBrain which is now owned by Avid. It's used by a lot of game studio's to version control the game assets and code. http://www.alienbrain.com/ It may not be the best solution though if you're not dealing with media assets.



Only top voted, non community-wiki answers of a minimum length are eligible