Re: repo.or.cz wishes?

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

 



Johannes Schindelin <Johannes.Schindelin@xxxxxx> wrote:
> On Mon, 27 Aug 2007, Petr Baudis wrote:
> 
> >   So now I wonder, what is the thing you miss most there?
> 
> I wonder if this is repo.or.cz specific, but we recently had a problem 
> where the blobs of a project went away, and the forked project still 
> relied on them.  Any ideas how to solve that issue?

Its not isolated to repo.or.cz.

Its what happens when you use `git clone --shared A B` and the
repository A that you borrow from removes objects that B depends
upon.  That is exactly what repo.or.cz is doing, and it is exactly
what I'm doing at day-job with some large repositories.

You more or less cannot repack A without making sure it takes B's
refs into account when it generates the new packfile.

But that's actually a problem because A doesn't have B's ODB, and
some objects that are reachable through B's refs won't be available
to A for traversal or packing.  Not to mention that you may not
want to stuff B's objects into A (at day-job I don't).

This is partly why Junio doesn't push to repo.or.cz/git.git but
instead pushes to alt-git.git and why he doesn't allow forking
of alt-git.git.  This way his `pu` branch doesn't lose objects
and cause a fork to suffer data loss after a repack of git.git.

At day-job I have a hard rule that you cannot even push into an A,
let alone rewind a branch in it or delete a branch from it.  All of
my A's that my B's fork from a strictly read-only and are managed
by me and me alone.  I know what I'm doing...  I think.... ;-)


So it really comes down to a rule like the following:

  If `git clone --shared A B` is used then either:
    - Never repack A;
    - Never delete/rewind a commit in A.

  If A must be repacked then:
    1) Hardlink all loose objects/packs from A to all B;
    2) `git --git-dir=A repack -a -d`
	3) `git --git-dir=B repack -a -d -l`
	4) `git --git-dir=B prune`

Ain't easy, is it?  That --shared flag to git-clone is playing
with fire.  If you don't want to get burnt, don't use it.  Maybe
we should rename it --light-a-match-and-burn-me-please.  ;-)

Forks on repo.or.cz are cool, but they can cause problems if the
root project is allowed to rewind or delete branches.

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

[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