Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 Dec 2020 11:34:08 +0100
From:      Ulrich =?utf-8?B?U3DDtnJsZWlu?= <uqs@freebsd.org>
To:        Bakul Shah <bakul@iitbombay.org>
Cc:        David Wolfskill <david@catwhisker.org>, freebsd-git@freebsd.org
Subject:   Re: Src repository is available on git.freebsd.org
Message-ID:  <X%2BMdIKU3fPQxwU%2BJ@acme.spoerlein.net>
In-Reply-To: <0C3B8F33-851B-4513-815A-09F33EF96DE8@iitbombay.org>
References:  <CAKBkRUwDdBJcrY0vj-WB_=pmyezq592E%2BJ-PULXO9tD4skkcCA@mail.gmail.com> <1527634C-4E31-4325-BB93-BDFF0C8ADB8C@iitbombay.org> <X%2BJtOK1HU4l7JU5B@albert.catwhisker.org> <0C3B8F33-851B-4513-815A-09F33EF96DE8@iitbombay.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 2020-12-22 at 14:18:10 -0800, Bakul Shah wrote:
>On Dec 22, 2020, at 2:03 PM, David Wolfskill <david@catwhisker.org> wrote:
>>
>> On Tue, Dec 22, 2020 at 01:51:39PM -0800, Bakul Shah wrote:
>>> I have been tracking cgit-beta.freebsd.org since September.
>>> What is the process for switching over to git.freebsd.org?
>>> I thought there were instructions for that but I can't find them any more!
>>> Thanks.
>>> ....
>>
>> I aqssumed(!) that the hashes would be different, so I moved aside the
>> repo I had from cgit-beta and cloned a new one (from git.freebsd/org),
>> then removed the old one once I was satisfied that the new one was OK.
>
>Forgot to add that I wanted to switch over *without* blowing away 3.2GB
>of local git bits. Hashes shouldn't change unless something major got
>redone. Comparing hashes from my local repo with https://cgit.freebsd.org/src/commit/
>I see they are the same.

3.2GB sounds wrong, it looks like you have the new hashes and the old 
hashes and no GC run in between. This is expected and would fix itself 
over time, you might want to compress things down to 1.6GB however, 
using: git gc --prune=now
BEWARE: that you don't have any loose refs that you still might need 
later on. If all your changes are in regular branches and you didn't go 
wild with rebase -i or anything, then this should be safe.

To not re-download everything, use --reference to point to an existing 
clone, that is:

git clone --reference /path/to/old/clone https://git.FreeBSD.org/src.git /path/to/new/clone

You could also:
git init
git add remote ....
cp the objects/* files over to the new repo
git fetch

>> A couple of caveats:
>> * I'm not a committer; I merely use the repo a a "source of truth" for
>>  updating machines locally, and I never have any commits to be pushed
>>  anywhere.
>
>Same here.
>
>>
>> * I actually used "git clone --mirror" (as noted in
>>  https://www.catwhisker.org/~david/FreeBSD/repo-sync.html); I then
>>  clone from that mirror to make working copies.  There are certainly
>>  other ways to accomplish this; some may be better for some folks.
>
>I don't quite do this because I am tracking -current and -stable locally
>and am using worktrees so as to avoid keeping multiple local git copies.
>AFAIK a mirror would blow away any local changes.

I think you're right, for that a single --bare clone (not --mirror) plus 
workspaces and local branches sounds more applicable.

Cheers
Uli



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?X%2BMdIKU3fPQxwU%2BJ>