How to setup GitHub and Dropbox for collaboration

Here is a helpful tip I am giving you for free: if you use Overleaf for collaborative works (which is ok), I would strongly recommend switching to Dropbox+GitHub for better version control and ease of working. Before I started using GitHub, most of the works were on Overleaf, but it is clear that working on it is not too good. When collaborating with another person (or people or aliens or whatever your colleagues are), it is very important that all the edits are perfectly synced-up, which Overleaf does not do offline on a free plan. Here is how you setup your collaboration folder. 

Suppose you (say X) are working with Y. Then, setup a GitHub repository with a folder of the TeX, bbl, bib and whatever files you want. Then, add Y as a collaborator to the project. I would strongly recommend using Sublime Merge for version control. Now, to whatever the initial state of the files are (denoted by $|\Omega \rangle $), whenever you make a change (or depending upon when you want to merge files), in the gui, FIRST commit, then if Y makes any changes he commits, he will then PUSH his commits onto the master branch, which you have to PULL -- ONLY AFTER YOU FIRST COMMIT, then MERGE the files, and after you obtain some merged commit (without any issues left to be resolved), only then will you PUSH to some state $|\Omega '\rangle $. This goes on back and forth, but for your ease, I strongly advise turning on email notifications for the GitHub commits so that the other person (or people or aliens or whatever your colleagues are) can pull and merge. There will be many issues, and particularly some may be a little more complicated if there are remote branches. So, a way of making sure that no information is lost (because let's face it, information during collaboration is more easily lost than the black hole information problem), people also sync the GitHub repo folder via Dropbox, so that there is a detailed synced-up version history. In case the other person (or people or aliens or whatever your colleagues are) messes something up, the version history can be consulted, but bear in mind that this needs your machine to be online. 

So, to summarise, setup a GH repo, invite collaborator(s), use version control apps such as Sublime Merge, setup email notifications, sync the repo to Dropbox, ask the other person (or people or aliens or whatever your colleagues are) to clone the repo, edit, THEN pull, THEN merge, THEN push, and watch Dune Part 2 when you can. 

2 comments:

  1. Firewalls are weird3 April 2024 at 08:32

    Why did you put so much emphasis on the order of github workflow? Looks like someone messed their routine ;)

    ReplyDelete
    Replies
    1. @Firewallsareweird, I cannot even begin to describe how many times I have messed up the order in which you are supposed to do the workflow. But of course, the learning curve is worth it at the end of the day.

      Delete