git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Syncing a git working tree with Dropbox?
@ 2010-01-13 23:57 chombee
  2010-01-14  5:39 ` Tay Ray Chuan
  0 siblings, 1 reply; 4+ messages in thread
From: chombee @ 2010-01-13 23:57 UTC (permalink / raw)
  To: git

I've heard of people keeping a bare repo in their Dropbox folder
(https://www.dropbox.com/) and pushing to and pulling from it, letting
Dropbox sync the bare repo between their machines. In other words using
Dropbox as a form of hosting for a private git repo. What I want to do
is sort of the other way around.

I keep on getting into the following mess: I have some changes in my
working tree on machine A, I stop working on machine A and don't commit
and push the changes (to my remote, 'central' bare repo) either because
they're not ready yet, or I forget to commit or push. Later on I arrive
at machine B which has its own clone of the same repo, but because I
didn't commit and push the changes on machine A I don't have access to
them on machine B and I can't continue working on them. The two machines
are physically located far away from each other and they're not
accessible over the internet. Argh!

Dropbox is a proprietary sync service that gets around this problem
because it automatically syncs your files whenever you save them. But I
still want to keep my project in a git repo. I'm assuming that keeping
the actual .git folder in a Dropbox folder, so that when git makes
changes inside the .git folder Drobox syncs them, would be a bad idea.
It seems like taking two different synchronisation systems and mashing
them into each other. But what about just the working tree?

My idea is that I keep my .git folder safely outside of my Dropbox
folder, but my git repository has a detached working tree that is
located in the Dropbox folder. On machine B it would be the same setup.
So the two machines each have their own clone of the git repo and these
are synchronised by git push and git pull with a 'central' remote repo.
But the two clones share the same working tree, or more accurately their
working trees are synced by Dropbox.

The working tree is just files, I don't see how it's different from
Dropbox syncing any other files. Dropbox and git ought not to collide in
any way. So this should work fine shouldn't it?

This way I don't need to commit and push my changes until they're
ready/I remember to, but whenever I move from machine A to machine B my
uncommitted changes will still be available to me because Dropbox has
synced my working tree automatically.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Syncing a git working tree with Dropbox?
  2010-01-13 23:57 Syncing a git working tree with Dropbox? chombee
@ 2010-01-14  5:39 ` Tay Ray Chuan
  2010-01-14 13:19   ` Geoffrey Lee
  0 siblings, 1 reply; 4+ messages in thread
From: Tay Ray Chuan @ 2010-01-14  5:39 UTC (permalink / raw)
  To: chombee; +Cc: git

Hi,

On Thu, Jan 14, 2010 at 7:57 AM, chombee <chombee@lavabit.com> wrote:
> My idea is that I keep my .git folder safely outside of my Dropbox
> folder, but my git repository has a detached working tree that is
> located in the Dropbox folder. On machine B it would be the same setup.
> So the two machines each have their own clone of the git repo and these
> are synchronised by git push and git pull with a 'central' remote repo.
> But the two clones share the same working tree, or more accurately their
> working trees are synced by Dropbox.
>
> The working tree is just files, I don't see how it's different from
> Dropbox syncing any other files. Dropbox and git ought not to collide in
> any way. So this should work fine shouldn't it?

Your changes in git (like new commits) won't be synced.

-- 
Cheers,
Ray Chuan

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Syncing a git working tree with Dropbox?
  2010-01-14  5:39 ` Tay Ray Chuan
@ 2010-01-14 13:19   ` Geoffrey Lee
  2010-01-14 13:40     ` chombee
  0 siblings, 1 reply; 4+ messages in thread
From: Geoffrey Lee @ 2010-01-14 13:19 UTC (permalink / raw)
  To: Tay Ray Chuan; +Cc: chombee, git

On Wed, Jan 13, 2010 at 9:39 PM, Tay Ray Chuan <rctay89@gmail.com> wrote:
> On Thu, Jan 14, 2010 at 7:57 AM, chombee <chombee@lavabit.com> wrote:
>> My idea is that I keep my .git folder safely outside of my Dropbox
>> folder, but my git repository has a detached working tree that is
>> located in the Dropbox folder. On machine B it would be the same setup.
>> So the two machines each have their own clone of the git repo and these
>> are synchronised by git push and git pull with a 'central' remote repo.
>> But the two clones share the same working tree, or more accurately their
>> working trees are synced by Dropbox.
>>
>> The working tree is just files, I don't see how it's different from
>> Dropbox syncing any other files. Dropbox and git ought not to collide in
>> any way. So this should work fine shouldn't it?
>
> Your changes in git (like new commits) won't be synced.

You have to sync your .git directory. For example, using your setup,
if you switch branches on Machine A, your working directory will
change on Machine B, but Machine B will still think it's on the
previous branch. This scenario would cause a lot of problems for Git.

There shouldn't be any problems with placing your entire repository
(working tree and .git directory) inside Dropbox as long as you only
use one computer at a time.

-Geoffrey Lee

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Syncing a git working tree with Dropbox?
  2010-01-14 13:19   ` Geoffrey Lee
@ 2010-01-14 13:40     ` chombee
  0 siblings, 0 replies; 4+ messages in thread
From: chombee @ 2010-01-14 13:40 UTC (permalink / raw)
  To: git

Ok, I was aware that I would have to sync the .git directories also, but
my plan was to do that in the normal way (git pull and git push) but
sync the working tree automatically with Dropbox. However, I'm now
imagining all kinds of mind-bending problems this might cause. If I
commit and push some changes on machine A, and Dropbox syncs the working
copy, then I go to machine B, git status will show that machine B has
changes to commit, until I do git pull on machine B. As Geoffrey points
out, changing branches could be even worse!

In any case, I've had problems with detached working trees. With an
older version of git it was refusing to checkout a detached working
tree. I upgraded git and checkout worked, but it refused to do git pull.

Ah well.

I'm not too sure about keeping the .git directory itself in Dropbox.
Googling it, it seems lots of people do it without any problems, but
there are some reports of it going haywire.

On Thu, Jan 14, 2010 at 01:39:10PM +0800, Tay Ray Chuan wrote:
> Hi,
> 
> On Thu, Jan 14, 2010 at 7:57 AM, chombee <chombee@lavabit.com> wrote:
> > My idea is that I keep my .git folder safely outside of my Dropbox
> > folder, but my git repository has a detached working tree that is
> > located in the Dropbox folder. On machine B it would be the same setup.
> > So the two machines each have their own clone of the git repo and these
> > are synchronised by git push and git pull with a 'central' remote repo.
> > But the two clones share the same working tree, or more accurately their
> > working trees are synced by Dropbox.
> >
> > The working tree is just files, I don't see how it's different from
> > Dropbox syncing any other files. Dropbox and git ought not to collide in
> > any way. So this should work fine shouldn't it?
> 
> Your changes in git (like new commits) won't be synced.
> 
> -- 
> Cheers,
> Ray Chuan
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

On Thu, Jan 14, 2010 at 05:19:08AM -0800, Geoffrey Lee wrote:
> On Wed, Jan 13, 2010 at 9:39 PM, Tay Ray Chuan <rctay89@gmail.com> wrote:
> > On Thu, Jan 14, 2010 at 7:57 AM, chombee <chombee@lavabit.com> wrote:
> >> My idea is that I keep my .git folder safely outside of my Dropbox
> >> folder, but my git repository has a detached working tree that is
> >> located in the Dropbox folder. On machine B it would be the same setup.
> >> So the two machines each have their own clone of the git repo and these
> >> are synchronised by git push and git pull with a 'central' remote repo.
> >> But the two clones share the same working tree, or more accurately their
> >> working trees are synced by Dropbox.
> >>
> >> The working tree is just files, I don't see how it's different from
> >> Dropbox syncing any other files. Dropbox and git ought not to collide in
> >> any way. So this should work fine shouldn't it?
> >
> > Your changes in git (like new commits) won't be synced.
> 
> You have to sync your .git directory. For example, using your setup,
> if you switch branches on Machine A, your working directory will
> change on Machine B, but Machine B will still think it's on the
> previous branch. This scenario would cause a lot of problems for Git.
> 
> There shouldn't be any problems with placing your entire repository
> (working tree and .git directory) inside Dropbox as long as you only
> use one computer at a time.
> 
> -Geoffrey Lee
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2010-01-14 13:41 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-01-13 23:57 Syncing a git working tree with Dropbox? chombee
2010-01-14  5:39 ` Tay Ray Chuan
2010-01-14 13:19   ` Geoffrey Lee
2010-01-14 13:40     ` chombee

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).