[TYPO3-core] [RFC] Upcoming Git changes

Michael Stucki michael.stucki at typo3.org
Wed May 15 10:57:24 CEST 2013


Hi folks,

with the new roles and groups in place, we no longer need to have Git
submodules for various extensions.

Since a few days we have been discussing how to practically get rid of
the submodules in a small working group.

Because of this huge change, the idea was brought up to do rewrite the
Git history in a sense that the submodules would never have existed.
Amazing enough, such thing would be possible with Git :-)

Together with this change, other pending issues could be addressed as well:

1. Fix the namespace change

This implies a rewrite of the Git history of commits in master and
currently maintained branches since approx. October 2012. The benefit
would be an improved working of Git blame.

2. Merge submodules into the main repository

Perform a massive rewrite of the history by fully erasing the usage of
submodules from history and replace them by appropriate file trees (real
file blobs).

3. Rename the repository

There is nothing special involved in this change. It is just an effect
of the rebranding and can be done simultaneous with 1) and 2)


Conclusion:

Yesterday, we discussed these points again in the server team meeting:
http://forge.typo3.org/projects/team-server-public/wiki/Meeting_2013-05-14

We see a lot of problems coming if Git history will be rewritten.
Therefore we recommend to avoid it, and do the following instead:

* Fix the namespaces change with a nice workaround (Peter brought this
up but it's available since long):

$ git fetch origin "refs/heads/sandbox/tmaroschik/replace/*:refs/replace/*"

This command needs to be run only once and would make "git annotate"
work beyond the namespaces change. Tutorials should be upgraded to
include this command during the setup.

* Prepare the history of submodules in a branch which also has the
namespace problems fixed. Afterwards, merge this branch. (Thomas
Maroschik is already working on this.)

* Renaming of the repository:

a) Just delete the remote & add a new one
b) $ git remote set-url origin "<new-url>"

If we do it like this we have a complex history where submodules are
switched on and off, which is not always easy to manage. However, as a
benefit, we keep all SHA's and don't need a single history rewrite.

This is our current suggestion! We hope you agree with it, and that we
can practically solve all problems with these planned changes.

Greetings, Michael

-- 
Michael Stucki
TYPO3 Core Team member

TYPO3 .... inspiring people to share!
Get involved: typo3.org


More information about the TYPO3-team-core mailing list