Raphael Hertzog writes ("Re: DEP14 policy for two dots"): > Ok, can you prepare a patch for DEP-14 then? I'll apply it as it looks like > a reasonable extension.
Attached. FYI I intend to implement this in dgit. Thanks, Ian. >From 5c63400e9be8cb1532515764a1179730aed550fb Mon Sep 17 00:00:00 2001 From: Ian Jackson <ijack...@chiark.greenend.org.uk> Date: Wed, 9 Nov 2016 18:36:23 +0000 Subject: [PATCH] DEP-14: Version -> refname mangling: Escape dots Signed-off-by: Ian Jackson <ijack...@chiark.greenend.org.uk> --- deps/dep14.mdwn | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/deps/dep14.mdwn b/deps/dep14.mdwn index 4c7ce63..a7328a4 100644 --- a/deps/dep14.mdwn +++ b/deps/dep14.mdwn @@ -3,7 +3,7 @@ Title: Recommended layout for Git packaging repositories DEP: 14 State: DRAFT - Date: 2014-11-04 + Date: 2016-11-09 Drivers: Raphael Hertzog <hert...@debian.org> URL: http://dep.debian.net/deps/dep14 Source: http://anonscm.debian.org/viewvc/dep/web/deps/dep14.mdwn @@ -60,8 +60,26 @@ Version mangling When a Git tag needs to refer to a specific version of a Debian package, the Debian version needs to be mangled to cope with Git's restrictions. -The colon (`:`) needs to be replaced with a percent (`%`), and the tilde -(`~`) needs to be replaced with an underscore (`_`). +This mangling is deterministic and reversible: + + * Each colon (`:`) is replaced with a percent (`%`) + * Each tilde (`~`) is replaced with an underscore (`_`) + * A hash (`#`) is inserted between each pair of adjacent dots (`..`) + * A hash (`#`) is appended if the last character is a dot (`.`) + * If the version ends in precisely `.lock` + (dot `l` `o` `c` `k`, lowercase, at the end of the version), + a hash (`#`) is inserted after the dot, giving `.#lock`. + +This can be expressed concisely in the following Perl5 statements: + + y/:~/%_/; + s/\.(?=\.|$|lock$)/.#/g; + +The reverse transformation is: + + * Each percent (`%`) is replaced with a colon (`:`) + * Each underscore (`_`) is replaced with a tilde (`~`) + * Each hash (`#`) is deleted Packaging branches and tags =========================== @@ -274,3 +292,4 @@ Changes ======= * 2014-11-05: Initial draft by Raphaƫl Hertzog. +* 2016-11-09: Extended version mangling to troublesome dots - Ian Jackson. -- 2.10.2 -- Ian Jackson <ijack...@chiark.greenend.org.uk> These opinions are my own. If I emailed you from an address @fyvzl.net or @evade.org.uk, that is a private address which bypasses my fierce spamfilter.