views:

67

answers:

4

I would like to make a backup of my project, but the folder now exceeds 6.6 GB mainly through extra libraries like boost etc, but even if I just select the folders with my sources, I end up with big files like: .ipch, .sdf and potentially others. To make matters worse I use eclipse to code and VS to compile, so that adds to the mess, although I have the impression that only VS creates big files.

In case shit hits the fan I would like to be able to unpack one archive, and have everything in there like the project settings and solution files, and the sources so that I can easily open it again in VS. I can live with having to re-download boost or other third party libs.

How do you tackle this problem and do I need to preserve file like .sdf?

Answer:

Thanks for all the tips. I will now adopt the solution proposed by LocustHorde because that seems to fit my needs best. I simply want one file that I can take offsite as a safe backup (and I don't want to use an online service). Storing all versions of all files doesn't seem to work towards smaller and simpler and it would be a bit overkill in this case, although I will look to install some version control system because I have no experience with them and I would like to get some...

Final Answer After having a good look I found that dishing out which files had to be ignored by the winrar archiving was still a hassle. I finally ended up installing Git out of curiosity and liked it. So I now have some of my projects in a local repository. From eclipse I can easily mark files and directories for being ignored, and to make a backup I use git-extensions to clone the repo. I still need to look at purging old versions, which isn't very userfriendly in Git, but seems to be possible at least and then i will just 7zip the folder up. In the worst case I just delete the git database and I just have the last version of my source files. Or maybe I can checkout to another directory. We'll see.

+1  A: 

Doing a "clean" before archiving removes most of what you don't need.

Edited to add:

Of course a version control system is essential for any ongoing project, but that's not what he's asking.

egrunin
If you look at his motivation for backing up the source files, he would be better served with a version control system.
Philip Goh
+2  A: 

A particularly nice way to backup your stuff is to put your source in a revision control system. I am using git sometimes, and other times mercurial. Using git I can ignore the files that should not be backed up, by adding them to .gitignore:

Debug
Yokto.sdf
Yokto.suo
*.filters
*.user
ipch
Release
Yokto.opensdf
*.opensdf
*.sdf

With git I can set up a backup repository on a network drive and simply push to it every now and then.

Daniel Lidström
+1, version control is the right solution.
Kirk Woll
I use AnkhSvn (SVN), its just fantastic!
LocustHorde
+5  A: 

First: Instead of doing a backup, I would strongly recommend using a version control system (VCS) like Subversion, Mercurial, or Git. This is the professional equivalent of a backup, except it maintains every version of every file—not just a copy of the latest version.

Even with a VCS, you will still need to decide which files to check-in to the VCS, and you don’t want to back up files that can be easily re-generated.

For my projects, I generally don’t check-in:

  • Generated executables (the output in the Release, Debug, x64\Release, and x64\Debug directories).
  • Pre-compiled headers (the ipch folder)
  • The browsing database (sdf files)

All of these things can be re-generated by rebuilding your project. If you are working as part of a team, you probably shouldn’t check in:

  • Your personal settings (.suo)

You can always re-create this if needed.

Nate
+1  A: 

you can write a simple script (batch file) that only zips the types of files you want. suppose, you want to zip all your .aspx, .cs, .config, .xsd files only,

suppose you have winrar installed in your c:\program files\winrar

and your project is in c:\project\MyBigProject

then, just open your notepad, copy paste this, and save as "script.bat" (dont forget the double quotes while saving, you need to save it with double quotes, so that notepad saves as .bat extention instead of .txt)

so to backup (in other words, to zip wanted files) :

"C:\Program Files\WinRAR\rar" a -r0 -ed MyBackup.rar c:\project\MyBigProject\*.aspx,*.cs,*.xsd,*.config

the syntax is like this:

"path to winrar folder" 'switches' "Name of completed rar file" 'folder to zip'

just make sure the paths are in proper order. the "a -r0 -ed" parts are switches, and you can find out all about the switches here:

http://acritum.com/winrar/manual/index.html?html_helpswitches.htm

I use the "Ignore files" switch (http://acritum.com/winrar/manual/index.html?html_helpswxa.htm) to ignore all files and folders that I dont want (with wildcards) and My project is about 86 mb, when It gets compressed just with code files, it comes up to 6mb.

its the best way to do it really. If you need more help, please ask!

edit: Also, Look into SVN (its free!) - I use svn too, and its really helpfull. there is even a free tool called AnkhSvn to integrate into visual studio. its just fantastic!

LocustHorde
I actually tried with the gui of winrar, and it is not practical to exclude certain filetypes... cmdline looks like the right solution.
ufotds
glad it could help, try the winrar document help, and esp. ignore files switch, that will help you the best I think. If you need any help getting the switches right, let me know!
LocustHorde