[TYPO3-core] FYI: Raised Extbase version from 1.2.0beta1 to 1.2.0beta2

Xavier Perseguers typo3 at perseguers.ch
Fri May 28 12:05:01 CEST 2010


Hey Sebastian,

>> Just one question: why do you "delete" and "add again" whole extension
>> instead of synchronizing changes as I do for DBAL?
> I guess that's because I'm too stupid to do it differently ;-)
>
> So, imagine the following situation:
> Extbase beta1 in
> https://svn.typo3.org/TYPO3v4/CoreProjects/MVC/extbase/tags/1.2.0beta1/
> Extbase beta2 in
> https://svn.typo3.org/TYPO3v4/CoreProjects/MVC/extbase/tags/1.2.0beta2/
>
> In the core, there is beta1. How can I merge the changes to beta2 now?
>
> somehow, SVN merge did not work for me. Do you do a diff between beta1
> and beta2, and apply it to trunk then?
>
> It'd be great if you could help me out on this, so I can improve the
> next time.

I had the very same problem many syncs ago with DBAL. The point is that you should not do it this way. I know this is the way we were told to do but the point is that it does not work and this is not 
the idea.

This is how I work with DBAL and I know Extbase and Fluid are really similar (I write the whole stuff in order to help other people reading this, I know you already know most of what I'll write):

About trunk, branches and tags
-----------------------------------

- The trunk version of DBAL corresponds to active development that is synchronized once in a while with Core trunk
- A branch is dedicated to each branch of TYPO3. I have a branch DBAL_1-0 for TYPO3_4-3 and (since feature freeze) a branch DBAL_1-1 for trunk (because we did not create the branch to ease the commits 
in Core), that will become branch TYPO3_4-4.
- A tag corresponds to a new version of DBAL. The point is, before synchronizing DBAL with Core (the same applies for Extbase and Fluid), we agreed to tag the version. That is the version we find in 
Core is a tagged version of DBAL


How a tag is created
-----------------------------------

- Various methods/tools exist but basically:

- commit all pending changes to trunk/the current branch
- Add a note to ChangeLog that version is raised, raise the version in ext_emconf.php and commit those two files
- Go to EM, update the checksums, this modifies ext_emconf.php, commit this change

Head of your branch/trunk is ready to be tagged

$ svn -m "Tagged version 1.1.6" cp http://path/to/dbal/branches/DBAL_1-1 http://path/to/dbal/tags/1.1.6

This gives you revision, let's say 9000.


How to synchronize in Core
-----------------------------------

- The point is NOT to checkout/try to merge the tag itself (as you noticed, you cannot merge the new version), but checkout the _branch_ (or trunk) at the revision you tagged it

Before explaining how to actually synchronize in Core, let's start showing how to do it correctly for the first time previous version for instance (that is for 1.1.5).

I go to Forge, in repository browser and see what was the commit of version 1.1.5, let's say it was 8504.

I go to typo3/sysext/dbal, make a checkout of this revision _from the branch_:

$ svn co -r 8504 http://path/to/dbal/branches/DBAL_1-1

Then I may commit it as usual to Core (and update the local file that says that I synchronized with /path/to/dbal/tags/1.1.5).

Now (and this is what should always happen) I released version 1.1.6, I now may merge easily with:

$ svn merge -r8504:9000 http://path/to/dbal/branches/DBAL_1-1 .

That's it!

The state is the one from tag because we used the corresponding revision number but as tags do not have any link between them except with the underlying branch they are originated from, you have to 
work with the common denominator, the branch itself!

Next time, you should simply merge from the branch and it'll work without hassle :-)

Cheers

-- 
Xavier Perseguers
http://xavier.perseguers.ch/en


More information about the TYPO3-team-core mailing list