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?
-
3Why isn't git an option? It seems like the perfect option.Rein Henrichs– Rein Henrichs2013年04月17日 20:53:58 +00:00Commented Apr 17, 2013 at 20:53
-
5Project lead who doesn't know version control? Get out of there, quick!JesperE– JesperE2013年04月17日 21:09:23 +00:00Commented Apr 17, 2013 at 21:09
-
microsoft live mesh is another choice for documents sharing if you wanna keep the docs privatemax– max2013年04月18日 01:07:55 +00:00Commented Apr 18, 2013 at 1:07
3 Answers 3
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.
-
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.fordeka– fordeka2013年04月17日 21:30:50 +00:00Commented Apr 17, 2013 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– Oleksi2013年04月17日 21:32:27 +00:00Commented Apr 17, 2013 at 21:32
-
3@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.user40980– user409802013年04月17日 21:45:36 +00:00Commented Apr 17, 2013 at 21:45
-
1I have used the model of central SVN and git-svn very successfully - including supporting remote development sites with it.mattnz– mattnz2013年04月17日 22:29:53 +00:00Commented Apr 17, 2013 at 22:29
-
1You 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 Tullis– Craig Tullis2013年04月17日 23:21:36 +00:00Commented Apr 17, 2013 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:
- https://www.kernel.org/pub/software/scm/git/docs/git-svn.html
- https://git.wiki.kernel.org/index.php/GitSvnCrashCourse
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).
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