SVN is not an old technology. It is a different technology, should you compare it to Git. It is actively maintained, it has a roadmap and contributors. SVN is a perfect tool for large companies as it provides a centralized place to keep the source code, it is eligible for creating backups, centralized build systems and code reviews. For your small startup or as independent developer that might not be so important, for large companies and corporate it very much is. Besides, let's face it - most people use Git just like they (would) use SVN. They create a project on Github, commit some code, then push to the server. How many pulls, code stashing, submodules,etc. does the average Git user use ?
SVN is here to stay for a long time.
Does this mean Subversion is now developed using... Git?
(not that I care much, but I can't find a link to any repository on their project page (only release tarballs), and this is only a mirror)
Yeah, that is not the recommended structure. It'll definitely make it more difficult if they ever decide to migrate to another version control system. You might want to ask this on the subversion mail list; see here.
Okay, now, if you're really crazy about this kind of thing, you can use a program called Subversion.
Subversion will track every change to a file or files that you make, and allows you to roll back to previous versions. Its use of Crazy Ridiculous Incomprehensible Math means that only file changes are saved, rather than complete new files, so you don't suck up a boatload of hard drive space.
Here's the real secret to this Kung Fu: you can use Subversion to manage changes made to your entire Skyrim directory, so when you start pouring on the mods, if something goes sideways you can roll back the changes to a stable (or more stable) version.
I've got half a mind to write up a guide to doing this but I simply haven't the time. This is a not very useful guide to using Subversion to manage your home directory in *NIX, but the theories and practices discussed can still be applied to a save game directory.
> A key feature of the changes introduced in Subversion 1.7 is the centralization of working copy metadata storage into a single location. Instead of a .svn directory in every directory in the working copy, Subversion 1.7 working copies have just one .svn directory—in the root of the working copy. This directory includes (among other things) an SQLite-backed database which contains all of the metadata Subversion needs for that working copy.
Probably nothing. Newer versions of SVN will take up less space. The reason why is there is now a cache of file hashes and we will avoid storing the same content more than once. Look for representation sharing in the 1.8 release notes.
Even svn refused to implement this one!
http://subversion.apache.org/faq.html#log-in-source
> Does Subversion have a keyword which behaves like $Log$ in CVS?
> No. There is no equivalent for the $Log$ keyword in CVS. If you want to retrieve a log for a specific file, you can run 'svn log your-file-name' or 'svn log url-to-your-file'. From the mailing list some explanations why $Log$ is bad:
>> "$Log$ is a total horror the moment you start merging changes between branches. You're practically guaranteed to get conflicts there, which -- because of the nature of this keyword -- simply cannot be resolved automatically."
> And:
>>Subversion log messages are mutable, they can be changed by setting the svn:log revision property. So the expansion of $Log:$ in any given file could be out of date. Update may well need to retrieve the appropriate log message for each occurrence of the $Log:$ keyword, even if the file that contained it was not otherwise updated.
> I don't care about that. I want to use it anyway. Will you implement it?
> No. There are no plans to implement it ourselves or accept patches which implement this feature. If you want to distribute your files with some kind of changelog included, you might be able to work around this limitation in your build system.
Sure. without psvn or dsvn this is the error message I get after C-x v v:
vc-do-command: Running svn --non-interactive add file.txt...FAILED (status 1)
svn: E155021: This client is too old to work with the working copy at '/path/to/dir' (format 31). You need to get a newer Subversion client. For more details, see http://subversion.apache.org/faq.html#working-copy-format-change
Message after svn-status command:
/path/to/dir is not Subversion controlled (missing .svn directory). Run dired instead? (y or n) n
As mentioned elsewhere in the thread, it's short for Subversion which is a version control system for software that keeps modification history and allows developers to work efficiently and simultaneously on the same project.
> It amazes me that in the Year of Our Lord Two Thousand and Fourteen, there's still no version control system that treats binary assets like a first-class citizen. :|
I'm under the impression SVN handles binaries just fine.
> Note that whether or not a file is binary does not affect the amount of repository space used to store changes to that file, nor does it affect the amount of traffic between client and server. For storage and transmission purposes, Subversion uses a diffing method that works equally well on binary and text files;
I've yet to have any problems. This answer over at Stackoverflow, though a little old, seems to say the same. Contrary to popular belief, SVN does do delta on binaries as far as I know.
Do you have a server? Subversion is pretty cool. I haven't used any of the features besides uploading, and I do believe you can get a GUI for it, but it is also command line so I don't see it being a huge problem for x-platforming
Git makes branches brain-dead easy precisely so they can be used for trying out and undoing things. The whole workflow is a world apart from SVN, which was only ever intended to be a CVS replacement.
What you are looking for is called incremental backup software. I haven't used any so I'm not going to make a recommendation, but now that you know the name Google should be your friend.
Edit: after rereading your post I think a version control system is more what you're looking for. Check out SVN.