Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

So there are 3 computers that I use to work on this project with, my home PC, work PC, and work Mac (for building to devices). The project has an SVN repository that two other programmers use so I can't commit broken code to it. The lead doesn't know how to use version control so the trunk contains art assets and everything else in addition to the project itself, making branching impractical (and I wouldn't want to use svn for branching anyway). I would use GIT if I could but it is not an option.

My question is, how can I go to work, update my working copy, work on it a bit, send it to my mac for building, then go home and work on it some more later- keeping in mind that I may go 1-2 days without being able to commit working code to the repository?

share|improve this question
3  
Why isn't git an option? It seems like the perfect option. –  Rein Henrichs Apr 17 '13 at 20:53
4  
Project lead who doesn't know version control? Get out of there, quick! –  JesperE Apr 17 '13 at 21:09
    
microsoft live mesh is another choice for documents sharing if you wanna keep the docs private –  max Apr 18 '13 at 1:07

3 Answers 3

up vote 10 down vote accepted

Why don't you use git locally to share your code with your three development machines/environments, and then just use SVN to do the commits that go to the rest of your development team.

This way, you can use git without locally without making the rest of your team use it.

share|improve this answer
    
Can I make a git repo in a subfolder of my working copy without it getting massively complicated to work with or interfering with the svn commits? I might just try that then. –  Ford Apr 17 '13 at 21:30
    
I think you should be able to do that without any problems. You just need to be able to tell SVN to ignore the .git folder, which should be straightforward. –  Oleksi Apr 17 '13 at 21:32
2  
@Ford you may wish to look at git-svn - the idea would be you do all your work in git (and share it between your environments) and then commit it back to svn. Several of my coworkers do this to maintain private branching. –  MichaelT Apr 17 '13 at 21:45
1  
I have used the model of central SVN and git-svn very successfully - including supporting remote development sites with it. –  mattnz Apr 17 '13 at 22:29
1  
You could also use something like DropBox.com or Box.com. My issue with Box.com would be that they don't preserve timestamps on files when they sync them, but DropBox does. Just another idea... You could then treat the repo exactly the same on each machine since all the repo metadata would be there in your working copy. –  Craig Apr 17 '13 at 23:21

If you would like to use git but you are stuck with SVN you might want to take a look at git svn:

In your case it might be beneficial that Git repositories work disconnected from a central server which seems to fit the "at home" use case (depending on your connection and network settings, etc.).

Another thing to explore is, whether your lead has a strong opinion on the version control management or whether the lead is indifferent to it. The lead might have good arguments after all. For one thing putting binary into Version control systems is a valid use case for some applications (i.e. to keep a valid history of the project with code and binary data matching up, otherwise one might end up with disfunctional snapshots because binary data such as images etc are missing, this is very different from lets say checking in object files, or compilation products).

share|improve this answer

the trunk contains art assets and everything else in addition to the project itself, making branching impractical

Big Error one: server-side branches are cheap-copies, if you already have WC of trunk, create (server-side) branch and switch to it it costs nothing in traffic (and minimal traffic for updating non-synced files on changing back to trunk - without downloading the whole trunk conent)

(and I wouldn't want to use svn for branching anyway)

Big Error two - branches is your case, perfectly valid and easy way

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.