HACKER Q&A
📣 hirsutehippo

How could you effectively collaborate with non-vcs users?


I will soon start my master's degree in engineering (not software), and I will have compulsory group projects as part of my coursework, which will involve writing a lot of Matlab code. Based on my past experience in undergrad, I assume that none of my teammates will know what a VCS is, and that the main platform for collaboration would be a shared Dropbox folder. I am rather proficient in git, and developing software without a proper VCS makes me uncomfortable, but I would like to build a good relationship with my teammates nonetheless. Thus, I thought of the following scenarios:

1) Try to evangelize and teach my teammates how to use git and GitHub; this would be ideal, but I don't know how willing they would be to learn those tools on top of the already stressful course material.

2) Let others collaborate on Dropbox while I use git alone and synchronize the changes by creating and applying patches; this solution has the most overhead, but it will allow everyone to use their favorite tools.

3) Ditch git altogether, use Dropbox and hope for the best.

In your opinion, what would be the best option?


  👤 kingkongjaffa Accepted Answer ✓
For simple group exercises and labs in Matlab, it probably won’t really be complicated/big enough to need it, frankly.

You might get a few starter files and have to tweak some pieces. Unless your project is more than like a few weeks long just do it together in study sessions and pair program if you can.

When you write your own work, solo labs, thesis, dissertation etc, then absolutely use vcs, obviously.

I did mechanical engineering in undergrad and the labs were fairly self contained and didn’t really need much revision.

If anything I would prioritise writing tests to help document and check others code, over worrying about vcs. TDD in Matlab would be quite a thing.


👤 thexa4
You can create your own repo and also do a `git init` in the dropbox folder. Then configure both to point to each other as remotes. (`git remote add dropbox /path/to/dropbox`)

When merging stuff, make a commit if needed on the dropbox repo and merge in your changes. Then pull from your personal repo from the dropbox one.


👤 yellow_lead
Number one, but these types of projects also require coordination beforehand to prevent huge merges / incompatible merges when two people try to work on the same thing at once