Information regarding upcoming Gitlab Migration

Bhushan Shah bshah at kde.org
Tue Apr 28 12:44:42 BST 2020


Hi Adriaan,

On Tue, Apr 28, 2020 at 01:08:33PM +0200, Adriaan de Groot wrote:
> A tool-like actor that I don't think has been mentioned so far is "existing 
> checkouts". I have a src/kde with all the bits I've looked at "recently". 
> There may even be some SVN checkouts there -- I'm willing to forget about 
> those. Surprising and annoying me every time I update those sometime in the 
> future is not good, but it's only going to annoy me once (per repo, so at most 
> 143 times for my clones).

We have a plan to provide a script which can change remotes in existing
clones. (It would take a top-level directory path for all your clones).

> Perhaps it's the "old school", but kdesrc-build doesn't do anything for me. 
> I'm intermittently interested in the source of some random part of KDE -- 
> generally because it's mentioned on IRC -- and then I need that source where I 
> can look at it. Whether it's 'git clone' or 'kdesrc-build --just-the-source-
> please' doesn't matter much.
> 
> If there's any compiling to be done, the less magic there is between me and 
> the compile, the better.
> 
> So, yeah: `git clone kde:x` all the way, but I'm also not really invested in 
> the structure of the label x, or the precise configuration of kde:.
> 
> 
> > Now, if a simple(ish) script can be created to make
> > something akin to the kde: rewriting work, even if what it really does is to
> > search gitlab and create a clone with the appropriate command, i could deal
> > with that, but having the ability to simply ask for the project name is
> > more than a little useful.
> 
> I think we shouldn't underestimate how names are a social construct, though: 
> the current flat structure comes after a structured SVN naming epoch. But I'd 
> totes +1 a search-and-redirector, especially if it means I can write `git 
> clone kde:peruse` and the resulting .git/config has followed the redirects and 
> whatnot and ended up with `url: kdeforreal:audio/peruse`

One thing to remember is, you can't really have a dynamic insteadOf URL
setup. Besides, even if we had a everything under KDE namespace I'd find
a setup for this weird enough.

Let's assume that everything is under invent.kde.org/kde (and
invent.kde.org/sysadmin and invent.kde.org/websites as it is right now).

Now you add a following snippet in gitconfig,

 [url "https://invent.kde.org/KDE/"]
     insteadOf = kde:
 [url "git at invent.kde.org:KDE/"]
     pushInsteadOf = kde:

Which is slightly modified version of the existing kde: URL helper shown here,
https://community.kde.org/Sysadmin/GitKdeOrgManual#Let_Git_rewrite_URL_prefixes

Now this is perfectly fine for the something which is kde/ so you can do
git clone kde:krita and it would happily replace 'kde:' part with
'https://invent.kde.org/KDE/' and would clone 'https://invent.kde.org/KDE/krita' 

But, now things get interesting when you want to clone the
docs-krita-org which is in the websites/ namespace. We will have to keep
this things in separate namespace for policy reasons (and same goes for
sysadmin stuff). How would you clone docs-krita-org?

git clone kde:../websites/krita-org ?
add a separate prefix for websites and sysadmin?

Let's assume that you added snippet for sysadmin and websites, it's
just 8 more lines after all,

 [url "https://invent.kde.org/websites/"]
     insteadOf = websites:
 [url "git at invent.kde.org:websites/"]
     pushInsteadOf = websites:
 [url "https://invent.kde.org/sysadmin/"]
     insteadOf = sysadmin:
 [url "git at invent.kde.org:sysadmin/"]
     pushInsteadOf = sysadmin:

Does this solve all use-cases? I believe no, it still does not support
the personal repositories of users. So you also need to add 4 more lines
for your own user, and 4 for each user whose repository you want to
clone.

What our workflow with the kde: prefix so far had been really useful I
agree, and I will miss it, but with departure of gitolite which allowed
repositories at top-level, we can't easily support this, and we have to
accept it.

Perhaps solution suggested by Ben in his email could be useful instead
and in addition generic invent: snippet which does not include any
namespace.

 [url "https://invent.kde.org/"]
     insteadOf = invent:
 [url "git at invent.kde.org:"]
     pushInsteadOf = invent:

> (That said, bigflatlistofrepositories.kde.org .. or maybe call it cgit.kde.org 
> .. could be a particular view onto gitlab which does flattening and search, 
> but only if there's people around to create it and maintain it)

Just to clarify, sysadmins have no plan to support or maintain the cgit
instance once we migrate to Gitlab.

Thanks

-- 
Bhushan Shah
http://blog.bshah.in
IRC Nick : bshah on Freenode
GPG key fingerprint : 0AAC 775B B643 7A8D 9AF7 A3AC FE07 8411 7FBC E11D
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20200428/11e16449/attachment.sig>


More information about the kde-core-devel mailing list