[Kde-scm-interest] How to handle conversion errors

Thiago Macieira thiago at kde.org
Sun Feb 28 00:31:17 CET 2010


Em Domingo 28. Fevereiro 2010, às 00.08.15, Andreas Pakulat escreveu:
> Well, its ugly compared to those tags that don't have additional changes
> merged in. That is I have this:
> 
> master
> *    --warnings
> |  * <v3.9.95> merge r1014461
> | /
> *   increase Qt requirement
> 
> But I'd rather like to have:
> 
> master
> *
> |
> * <v3.9.95> r1014461
> |
> * increase Qt requirement.

You should have thought of that before moving the tag in Subversion.

You can't have that in Git because that's not what happened.

> Well, this is mostly because my tags-rule looks like this:
> match /tags/KDE/([^/]+)/kdevelop/
>   repository kdevelop
>   branch refs/tags/v\1
>   annotated true
> end match
> 
> And hence I get a tag v3.5.10 even though there was never such a release
> (its 3.5.4, released together with KDE 3.5.10).

Yeah, you have to manually select what the numbers translate to, if you're not 
using the KDE path components.

> > Following the trunk is easy. Just add more rules with a master output
> > branch.
> 
> Hmm, so lets say I have trunk, it was copied to qt4-convert-branch,
> which was later merged back to trunk (and replaces almost all the code
> in trunk). Right now I only see the merge-commit in the history, to get
> the individual commits from the qt4-convert-branch I'd just have to list
> that for master output branch?

Yes. And clearly you'd not list trunk as the source of master. You have to 
either save that in a separate branch, or you have to ignore those commits.

> Whats the easiest way to find such moves in the svn history (as most of
> the branches have been deleted after the move back to trunk).

svn log -v --stop-on-copy $URL
then follow the URL it was copied from

> > Without an example, we can't tell. And you can simply delete useless
> > things at the end of the import.
> 
> I get this:
> 
> master
>  * fix compile with current gcc
>  |
>  | * <v2.1.1> kdevelop 2.1.1
>  | * <v2.1> kdevelop 2.1
>  |
>  * made messages
> 
> i.e. tags and related commits that don't have any parent commit. Yes I
> can remove them, but I'm wondering wether this may point to some commits
> being missed out.

That shouldn't happen. It means the tool could not figure out where the tag 
and/or branch was copied from, so it couldn't generate the proper Git history. 
I can think of three possibilities:

1) bug in the tool
2) the SVN commits were not copy-with-history
3) the SVN paths they were copied from did not match any rules

Note that "match any rules" here has a problem with the ending slash. I'm not 
sure if this is dealt with, but if you copy a directory, the directory has no 
ending slash. So the rule may not match.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
  Senior Product Manager - Nokia, Qt Development Frameworks
      PGP/GPG: 0x6EF45358; fingerprint:
      E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part.
Url : http://mail.kde.org/pipermail/kde-scm-interest/attachments/20100228/f5f9aa7a/attachment.sig 


More information about the Kde-scm-interest mailing list