Are there any version control systems that allow you to permanently delete files?

I need to keep several large files under the version (some Gigs).

I do not need, and I can not support the version of all versions of files. I want to at some point be deleted from my version of large VCS files.

The files that I want to keep under version control are large .zip files or ISO images. These files may contain executable software or data (seismic data, SAR images, GNSS data), and they are provided by my company’s software vendor.

What version control system can I use?

+7
version-control large-files
source share
11 answers

In CVS, you can do this by deleting files from the repo. Subversion allows this by dumping the contents of the repo and filtering it to delete files (which is a bit cumbersome). For this, Perforce has a obliterate team. Many of the new distributed VCS make it harder to use hashes in all places, and the fact that your repo may have been replicated elsewhere also complicates the situation. Hg has a strip command (part of the Mq extension), Git can do it too.

+8
source share

I do not think that this is any version control system that allows you to do this regularly, because it contradicts all version control systems.

+4
source share

Perforce usually allows you to transfer files in two ways, only in the form of a revision of a chapter (so that you only have one copy) or all versions. Perforce has an admin kill command that can be used to uninstall versions. You can request a list of files, possibly by date or number of revisions, as well as specify the changes for the erase command. Since the name suggests erasing, it constantly deletes revisions from the database, so I always create scripts for this and review them before starting them. If the erase command does NOT start with the -Y flag, it will generate a list of what will be destroyed is also very useful.

+4
source share

Somehow it seems that you should not use a version control system at all. As mentioned earlier, what you are trying to do is contrary to everything you need for a version control system.

I suggest you create a file system directory structure that makes sense for what you are trying to do, and so that you can structure your data. And just backup these files.

+4
source share

TFS has a shred command that you can use to permanently delete files or fixes as you see fit.

This MSDN article has more information.

+3
source share

Many version control systems allow you to customize them so that they only keep the differences between multiple versions of the file and save space through this.

For example, if you have a file with 1Gig, change its part and copy it again, only the changed part will be saved in the version control system.
2Gigs (start and new file) will not be used, but only 1Gig + sizeOfChanges.

There is only one drawback: if you store files that modify all content from version to version, this can also be counterproductive, since the changes take up almost the same place as the original version. Archive files are an example for such files where only a small change in the (real) content can lead to completely changed contents of the archive file.

I would suggest testing several version control systems on your own and with your specific needs and environment and monitoring each of them on the server side as the storage requirements of each system change.

+1
source share

Some distributed version control systems allow you to create “checkpoints” that allow you to use this version as a type of basic revision and protect you from pulling the entire story to a checkpoint with each check. Thus, you can delete large files, create a checkpoint and check / clone the repository from this checkpoint to a new directory. Then you have a new small repository, but no history to a breakpoint. You do not need this story, you can burn the old repository to a CD and use the new, partial from now on.

I tested it only in darcs , and it works there, but YMMV depending on the version control system and use cases .

+1
source share

It seems to me that you need an intelligent backup system, not version control.

I am using SyncBackSE ; it allows you to keep a number of previous versions and can also do things like “ignore all files modified more than 30 days ago”.

This is one of the few bits of paid software that I use. I think it's worth checking out.

+1
source share

I think you're talking about something like an AlienBrain bucket, aren't you? Ability to remove some changes from version control. If you want to destroy an element, it is usually called "erased", and it is supported by a number of systems. Buckets, AFAIK supported:

+1
source share

I would save such files under a unique name (possibly datestamped) and, possibly, additionally create a text link to an external file in the version control system.

0
source share

Fossil allows you to do this using the shun mechanism. However, a fossil being a distributed SCM means that it does not affect all repositories (for obvious reasons).

0
source share

All Articles