

Ask HN - When is right time to start using version control for a project? - fireandfury

I've been working on an iPhone app for about a month and I'm waiting until I finish a key set of features before I put it under version control. I'm making so many big changes that I'd rather not keep track of them all yet. Regular Time Machine backups and archiving a copy of the code after implementing a key feature are the only things I'm doing at this stage.&#60;p&#62;I'm curious though, at what point in a project do you guys normally start using source control management (ie. subversion, git, mercurial)?
======
oneplusone
Before you write your first line of code.

~~~
olefoo
I'm probably not the only person on here who keeps any notes and planning
documents for projects under version control. I also regularly import research
notes into comments before I write the code in question, but I'm weird and
I've been told I do too much design up front.

~~~
keefe
I'm firmly of the opinion that only 10% of writing software is typing code. I
have all my text documents in git, experimental ideas, budget plans,
everything. The only complaint I have is that I haven't figure a solid plan
for doing encryption inside version control effectively yet, but I haven't
tried too hard either.

~~~
olefoo
Whole volume encryption works, although it can be a bit cumbersome.

~~~
keefe
How is the performance? I have no experience with whole volume encryption, do
you have any useful links?

~~~
olefoo
There are actually several ways to do this I use encfs which uses FUSE to
mount an encrypted directory as another directory, the advantages are that it
works in userland and it's braindead simple. I wouldn't want to run a database
off of it, but for a bunch of text files it's perfectly adequate. A lot of
people are fans of truecrypt and if you are seriously concerned about devoted
efforts to get at high-value data you probably want to just encrypt the disk
partition you are using.

This post [http://www.debianadmin.com/filesystem-encryption-tools-
for-l...](http://www.debianadmin.com/filesystem-encryption-tools-for-
linux.html) has a fairly good introduction to the most popular flavours. It's
going to vary depending on your needs.

~~~
keefe
Thanks for the article, there is lots of great info on there. I need to figure
something out where I can make secure backups to some remote server. I guess
there is no real perfect solution, but TrueCrypt looks good. I ran across this
one talking about some deeper security constraints with this that I think
offers a nice insight.
[http://www.schneier.com/blog/archives/2008/07/truecrypts_den...](http://www.schneier.com/blog/archives/2008/07/truecrypts_deni.html)

------
keefe
Every single text file you use should be in version control! Git is great for
this, handles large files nicely and it's very easy to setup backup scripts
across multiple machines. The line about making so many big changes is total
nonsense! Get your text files into version control and do it right now, I
think you should really consider what kind of release engineering you are
doing for your app. How are you doing code branches so you can do bug fixes on
released versions of your software without including experimental new code if
you're not in version control??? You should seriously look into branches for
your software for this and automating your build process as much as possible,
in the end you will be grateful for the meta-work done today.

------
ErrantX
_I'm making so many big changes that I'd rather not keep track of them all
yet_

For what other reason is source control used but to maintain track of code
changes like this!

 _Regular Time Machine backups and archiving a copy of the code after
implementing a key feature are the only things I'm doing at this stage._

Then your using rudimentary source control anyway :) I'd switch to something
more structured asap.

Im with the others: at the start. :) With hosting so cheap now (my choice is
mercurial and bitbucket) and with private repositories barely a few clicks
away there is no reason not to IMO.

------
javery
It sounds like the source control you are using has too much friction, setting
up a Git repo and keeping it up to date is quick and easy so there is no
reason not to do it right away.

------
wesleyd
Coding without source control is like using an editor without undo.

Use source control from the very start. Git is pleasant to use.

------
JimmyL
Yesterday.

If your version control system has so much overhead that putting code under VC
is a chore or something to be put off and planned for, then it has a problem -
and you need a new VCS, or at the very least, a new set of tools and
workflows.

