Re: Syncing Git Repositories

2014-07-17 Thread Matthieu Moy
Sajan Parikh sa...@parikh.io writes:

 By syncing my code folder and git repositories in this way, do I risk
 borking any repositories?  I'm 99% confident I'm not, since everything
 is in .git/, and there are not external databases or log files that
 need to be updated.  Just making sure though.

You're right that there are no external database, hence if you actually
sync the whole worktree+.git/, you won't have any problem.

I synchonize a bunch of Git repositories between machines with Unison
(file transfer utility), it works great.

One issue you may encounter is if you have either partial
synchronization (e.g. network loss in the middle of a synchronization, I
don't know how owncloud deals with it), or two way synchronization
(there's a synchronization between your laptop and owncloud ongoing, and
you start working on your desktop and trigger a synchronization.

I sometimes encounter this situation with unison. The good news is that
in 99,999% of cases where I'd encounter a problem, Unison shows a
conflict on the index file (modified on both sides). So, in these cases,
I just use Git normally to synchronize, decide that one side becomes the
reference, and rsync to the other to resolve the Unison conflict.

Also, you have to ensure that you synchronize both file
additions/modifications, and file deletions. I often make the mistake of
using rsync without --delete, and it confuses the branch storage format
(I keep my local unpacked branch, and the packed branch is hidden by
it).

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Syncing Git Repositories

2014-07-17 Thread Junio C Hamano
Matthieu Moy matthieu@grenoble-inp.fr writes:

 Sajan Parikh sa...@parikh.io writes:

 By syncing my code folder and git repositories in this way, do I risk
 borking any repositories?  I'm 99% confident I'm not, since everything
 is in .git/, and there are not external databases or log files that
 need to be updated.  Just making sure though.

 You're right that there are no external database, hence if you actually
 sync the whole worktree+.git/, you won't have any problem.

 I synchonize a bunch of Git repositories between machines with Unison
 (file transfer utility), it works great.

 One issue you may encounter is if you have either partial
 synchronization (e.g. network loss in the middle of a synchronization, I
 don't know how owncloud deals with it), or two way synchronization
 (there's a synchronization between your laptop and owncloud ongoing, and
 you start working on your desktop and trigger a synchronization.

 I sometimes encounter this situation with unison. The good news is that
 in 99,999% of cases where I'd encounter a problem, Unison shows a
 conflict on the index file (modified on both sides). So, in these cases,
 I just use Git normally to synchronize, decide that one side becomes the
 reference, and rsync to the other to resolve the Unison conflict.

 Also, you have to ensure that you synchronize both file
 additions/modifications, and file deletions. I often make the mistake of
 using rsync without --delete, and it confuses the branch storage format
 (I keep my local unpacked branch, and the packed branch is hidden by
 it).

All correct but .git/index may need to be refreshed, as your
cloudSync is unlikely to sync stat details across filesystems,
especially inum and possibly uid.


--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html