Git synthetic worktree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I'd like to create a single worktree where files from multiple Git
repositories (or refs) coexist side-by-side (no subfolder separation),
but each with repository still independently tracked by Git.

There may be multiple uses cases such as vendoring where a child
project constructs a synthetic worktree with all its dependencies.
Another use case is to generate patches with a tool such as `Quilt
<https://savannah.nongnu.org/projects/quilt>` where the ``patches``
folder is an independent repository.

For example:

```
PROJECT A
├ File A
├ File B
└ README
```

```
PROJECT B
├ patches
│ ├ File 1
│ └ File 2
└ README
```

```
SYNTHETIC
├ patches
│ ├ File 1
│ └ File 2
├ File A
├ File B
└ README
```

To put it simply, I'd like to replicate `Overlay FS
<https://docs.kernel.org/filesystems/overlayfs.html>` in Git.

Now what happens when we have the same file in the repositories? We
can specify which repository is at the top of the stack.

The CLI experience could look like something like this:

```
$ git clone repoA
$ git remote add repoB
$ git worktree push repoB/main
Usual git commands now applies to `repoB`.
$ git worktree top repoA.
Usual git commands now applies to `repoA`.
$ git worktree pop repoB/main
Files from `repoB` are gone.
```





[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux