git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [RFC PATCH 0/2] Allow adding .git files and directories

From
LSLukas Straub <lukasstraub2@web.de>
Date
Aug 21, 2020, 12:39 UTC
Message-ID
<20200821143941.28f71287@luklap>
In-Reply-To
<20200820130125.GB2522289@coredump.intra.peff.net>

On Thu, 20 Aug 2020 09:01:25 -0400 Jeff King <peff@peff.net> wrote:

Show 21 quoted lines
> On Thu, Aug 20, 2020 at 01:34:45PM +0200, Lukas Straub wrote:
> 
> > Yes, there are many workarounds and they work well in the CI usecase. However,
> > for the arbitrary files usecase there is no good workaround. I currently use
> > a script which iterates over the tree and renames .git -> dotgit before running
> > any git command and back again afterwards, but it is slow and brittle. I toyed
> > with the idea of writing a FUSE filesystem to do the renaming, but it is
> > needlessly complex and hurts performance.
> > 
> > Really, this problem should be solved in git itself.  
> 
> It is unclear to me why need to hold many sub-repositories within the
> parent one, nor what Git operations you expect to perform over them. And
> what disadvantages your script solution has.
> 
> Perhaps you can give a more concrete use-case (but before you spend a
> lot of time doing so, I'll warn you that I find it pretty unlikely that
> it will cross the bar necessary to counter the downsides we've discussed
> so far).
> 
> -Peff

I store all my files in several git(-annex) repositories. By "files" I mean anything you might find in your home directory across your devices, anything on usb thumbdrives, sd cards and maybe your home NAS. And anything you would usually use google photos, iCloud, dropbox, etc. for. Concrete examples: I store the home directories (containing git repos) of two retired machines in such a repository. I don't store the homes in a archive file as I want to use git-annex's ability to only have the contents of files I need on my laptop. I store my development directory containing several(130) git/svn/unversioned projects in another repo. This allows me to version and sync everything (including WIPs) across my machines. I tried alternative workflows and they didn't work out.

In both cases, the script introduces a delay of ~10 seconds to every git command I run in the outer repository and I have to remember to use the script on these repos. Moreover, I can't use the git-annex assistant, which watches the repo and automatically commits and syncs file changes. In my opinion, I want to be able to set the allow-dotgit config and it'll just work without the delay and without having to remember the script.

The downsides we discussed don't apply in this usecase. These are mostly personal files, so I wont upload them to any hosting site (not even private ones). There is no security impact as I only sync with trusted devices.

Regards, Lukas Straub

Previous: Jeff KingNext: Randall S. Becker
Message 15 of 27 in “Allow adding .git files and directories”
  1. 0/2 Allow adding .git files and directoriesLukas Straub, Aug 19, 2020
  2. 2/2 dir: Recurse into nested git repos if they aren't submodulesLukas Straub, Aug 19, 2020
  3. 1/2 dir/read-cache: Allow adding .git files and directoriesLukas Straub, Aug 19, 2020
  4. Junio C HamanoAug 19, 2020
  5. Randall S. BeckerAug 19, 2020
  6. Junio C HamanoAug 19, 2020
  7. Randall S. BeckerAug 19, 2020
  8. Jeff KingAug 19, 2020
  9. Junio C HamanoAug 19, 2020
  10. Jeff KingAug 19, 2020
  11. Randall S. BeckerAug 19, 2020
  12. Johannes SchindelinAug 20, 2020
  13. Lukas StraubAug 20, 2020
  14. Jeff KingAug 20, 2020
  15. Lukas StraubAug 21, 2020
  16. Randall S. BeckerAug 21, 2020
  17. brian m. carlsonAug 21, 2020
  18. Lukas StraubAug 22, 2020
  19. brian m. carlsonAug 22, 2020
  20. Lukas StraubAug 22, 2020
  21. Johannes SchindelinAug 24, 2020
  22. Lukas StraubAug 20, 2020
  23. Jeff KingAug 20, 2020
  24. Lukas StraubAug 19, 2020
  25. Lukas StraubAug 19, 2020
  26. Randall S. BeckerAug 19, 2020
  27. Lukas StraubAug 20, 2020

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.