ODrive Git Support

I’ve read a couple of the issues raised on this subject, and it seems like the easiest fix would just be to auto sync all sub folders from any requested folder containing a .Git folder downwards.

Just provide a dialogue stating that is what will happen, and that changes to this behaviour are possible manually, but may result in the Git repo not working as expected.
Aka: not your fault\problem.

At the very least, I’d expect to be able to override your choices on ignored files/folders, given that it’s a service for synchronising files.
Maybe I need/want files that you would consider unimportant.

By that same token, I’d expect to be able to select file types to ignore, and to be able to make simple rules for that purpose.

As it stands, I’m going to have to either use another sync service, or create a folder with a slightly different name, and create a symlink on any machine I use this on.

2 Likes

Thanks for reaching out.

Can you tell me how you use git in this fashion? I am always curious about these use cases. git, itself is a centralized repository, with its own syncing abilities. In fact, it allows some pretty powerful ways to manage your code centrally while keeping independent views of your work on disparate clients, along with facilitating conflict detection, content merging, etc…

That would be only if you use a Git server/service.
Sometimes I use a bare repo which would only function between machines if that folder got synchronised.

You can have a bare repo for use as your central repo, store that on your [service\drive], and make commits from a local repo to that central repo.
So, your ODrive serves as your central repo, which falls apart if you don’t have the actual repo.

Basically, Git doesn’t work without the files.

+1 on adding better support for .git folders

1 Like

2 posts were merged into an existing topic: YIKES! losing .xcodeproj files!

Use cases that call for supporting git are more complex than we want to officially support, at this time. Currently we are excluding .git .gitignore from sync. This means we ignore them completely.

We are discussing adding features that would allow users to specify specific files/folder types to allow and deny.

@Baron_von_Whimsy: I’m trying to follow the logic here. We use Mercurial rather than Git, but the overall situation is identical. If you use an odrive folder for the central repository, this means that every connected computer holds a copy of the entire repository. I’m not sure that this is an ideal situation. Storing your repository on a central cloud server seems preferable, as only checked out files need to be present on a client computer.

I’m unsure that odrive is a good solution in this case.

I believe that the simplest solution that solves my problem is to have a kind of .odrive_ignore to define which files should be ignored.

reference: http://sync-help.bittorrent.com/customer/portal/articles/1673122-ignoring-files-in-sync-ignorelist-

1 Like

I definitely want the option to sync .git folders because I sometimes use git as a file versioning system without linking it up to a remote repository. This means that any of these changes to the versioning list isn’t synced between my computers. I don’t see how supporting the syncing of .git files would be any different from syncing of any other hidden files.

3 Likes

I just found out from this thread that none of my .git folders are syncing. As with alisonh2351, my use-case absolutely demands that I be able to include .git folders in my sync. Can the built-in ignore list be overridden? If not, that’s a dealbreaker.

+1 vote to add git support!

I just learned from this thread that many of my .git folders have been lost. I was adopting the paradigm of unsyncing closed projects (each in their own directory), but periodically need to re-access them. These projects all have data files alongside code with git versioning information saved in each code directory. If I were to pay for unlimited private repositories from a git service, I would still have to manually restore the .git repository for each project after re-syncing it, which makes odrive more of a hassle to use than it’s worth.

1 Like

Trialling odrive here and discovered my .git folders weren’t syncing. Found this thread. Oh dear. I was finding odrive perfect for my needs up until I found I can’t keep git repos in it. I keep a few dozen local repos in Dropbox. I don’t really need or want to put them on Github or Gitlab (not yet, anyway). I was just about ready to sign up for a full odrive subscription, but now I have to reconsider. Such a shame as the trial was going so well otherwise!

We will be removing our .git and .gitignore exclusions in our next client release. We will post here when it is available. We would very much like feedback from the folks on this thread once that occurs.

5 Likes

Agree that finding out .git folders not supported was an unpleasant surprise. Will be waiting to see how this plays out. Seems like a common use case for your current user base of early adopters.

Thanks for bringing this to light. I, too, am wanting to use git in this way; in my case for an easy way of keeping my local dev code branch synced between my work/desktop and home/laptop.

I find it counter-intuitive that there is a secret “exclusions list” that we would’ve had no clue except for trial-and-error and then googling to find this forum.

By default, when using a program which claims to sync all files in a folder, as Joe Q. User, I expect it to sync all the files in that folder, not to have a hidden “exclusions” list which I can neither see nor edit.

Sorry to come across as a downer, but I guess I was disappointed to find this, right when I’d just upgraded to the “premium” version so I could feel safer in putting sensitive code into an encrypted folder. So, just adding my +1 here and trying to describe how I think most users would find this secret hidden exclusion list.

What else is excluded that we don’t know about?

Is it all .folders starting with a dot in the name? If so, that could cause a lot of other headaches, too, especially when one of the sync targets is a unix-like system … plenty of handy and wanted stuff is stored in hidden “dot”-folders.

Is there some use case that we’re not thinking of that would benefit from this hidden exclusion list?

PS. Thanks for making such a useful and handy product.

UPDATE: found an explanation here as to why .git folders were being excluded.

I can see how that might bite some people in the butt, but I think that nerfing it so that .git folders aren’t synced at all is probably going to frustrate more in the long run. The gotchas of dealing with the presence of .git folders is just something that one would need to handle as part of the learning curve in using git in that fashion, and I think users would accept that, and not expect their file-syncing tool to try and hide it from them.

(unless there was some way exposed that we could all customize our own exclusion patterns)

Hi,
Thanks for the feedback. You may have missed my previous post above, but we will be removing the git exclusions in our next release and I am hoping to get feedback from folks like you once we do that.

For a full list of exclusions, please refer to this area of our usage guide:

Thanks!

Hi Tony,

thanks. Yeah, I did see the note about removing the git exclusion, and thank you; I wanted to add my feedback anyway as another person who was frustrated by the behavior.

Thanks for the link to the list of exclusions; I can see where it makes sense to exclude most of those in most cases; but it does seem like it would be nice to have the option to sync them if desired, because who knows?

Maybe by right-clicking the files and choosing “sync”? Right now if I right-click my “.git” folder in my repository folder, none of the odrive options show up.

Either that or some way to customize exclude patterns. But then it might need to be on a per-directory basis, which I realize may make things trickier.

Thanks again Tony. : )

Git exclusions have been removed and custom exclusions are available. More about that here: https://docs.odrive.com/docs/sync-changes#section--custom-ignore-list-blacklist-

I think terrible the odrive sync folder .git. I stopped using Dropbox for development projects precisely because it did sync my git repositories, because it gives a lot of conflicts and so broke the git tree.

why not make this configurable? I already suggested this before: ODrive Git Support