[scribus] Removing the root directory in the git repositories

ale rimoldi ale.comp_06 at xox.ch
Thu Oct 11 13:24:15 UTC 2012


Hi people,
Hi Malex,


In the past, I was a little bit bothered by the fact that git repository
had a "Scribus/" directory at its root, which then contained the Scribus
source.
I was wondering why this extra level was needed, but since the real
files were just a "cd" away, I never really cared.

I was wrong! I should have said at the beginning and it would have been
an easy fix.


Now, I care! I'm trying to document, how to start contributing
to Scribus by using Qt Creator and the issue i get is that the "Qt/git"
wizard can't find the Qt project file, because it's not in the root
directory!

Instead of bothering each single potential contributor with tedious
extra steps, when starting toying with the Scribus code, i think that
it's really time to get this fixed for real and remove that "useless"
Scribus/ directory.


I've been to the #git support channel and I asked the people in there
what they think about such a change.
The answer could be summarized in: from the git point of view, it's not
really a good idea, but if you have a small team it should not
bee too painful.
So, I'd like to suggest you that we do it before the number of people
using the git repository grows and it gets really painful!


Now some facts.

The command to run is:

$ git filter-branch --tag-name-filter cat --prune-empty \
--subdirectory-filter Scribus/ -f -- --all

and it has to be run at the root of the repository.

it run for about twenty minutes on my computer and the result looks
good.


A bit more visually, the result is the following. Currently, when you
clone the scribus.git repository you get the following content:

http://www.git.scribus-ece.info/?p=.git;a=tree;h=refs/heads/ece14;hb=refs/heads/ece14

... after the change proposed it would look like this:

http://www.git.scribus-ece.info/?p=.git;a=tree;f=Scribus;h=bb3551bc28dcd5d9a5e999b441be42665be611a7;hb=refs/heads/ece14


If we decide to make the change, the guys on #git suggested the
following steps:

- fix a day and time when the change should happen.
- everybody pushes what he has to push
- somebody (A) checkouts all the remote branches
- (A) removes all the remote branches
- (A) fixes the directory structure on his local repository
- (A) pushes the changes to the server
- (A) recreates all the remote branch
- everybody clones the new repository and checkout the "new" branches

What is still missing: how to fix the repository tracking the svn trunk.


I admit that it is quite some work, but, imo, it looks manageable.

And I really would like to fix this issue, before even more people start
working on the git repository!


What are your thoughts?


ciao
a.l.e



More information about the scribus mailing list