Package: dpkg-dev
Severity: wishlist
Version: 1.21.1

In an email thread somewhere, I wrote:
> Would you welcome implementation of a "3.0 (diff)" format which
> contained a tarball plus a single diff, arranged to be capable of
> representing every git tree object ?  There would have to be some
> massaging, I guess, mostly because of symlinks.  That would be
> pareto-better than 1.0-with-diff.

I thought about this and I think it makes sense to make this a proper
wishlist bug.

My goals[1] here are to provide a source format which:

1. Can represent any git tree object (unlike 1.0-with-diff),
2. Without needing to modify it or add anything (unlike "3.0 (quilt)")
3. Is readily compatible with ftpmaster workflows (unlike "3.0 (git)")
4. Does nnt actually use git for packing/unpacking

This would be pareto-better than "3.0 (quilt)"+single-debian-patch.

I suggest the following format: the .dsc mentions one or more orig
tarballs as for 3.0, plus one file called ".diff" as for 1.0.

The diff would be in the format produced by git-diff.  But that format
would be reimplemented.  I think by now the main part that needs
reimplemneting is support for modifying symlink targets.  And there
should be some checking that the resulting tree does not contain
strange object such as sockets, device files, or other things that git
cannot represent.

The implementation of symlink-target-diffing could be done by adding
the necessary feature(s) to GNU diffutils, or by ad-hoc perl code.

Ian.

[1] I think these goals make it difficult to provide the otherwise
desirable objective of being able to represent a patch series.  IMO
that objective is less important now that more and more people are
working purely in git and treating the archive as a legacy interchange
mechanism.

-- 
Ian Jackson <ijack...@chiark.greenend.org.uk>   These opinions are my own.  

Pronouns: they/he.  If I emailed you from @fyvzl.net or @evade.org.uk,
that is a private address which bypasses my fierce spamfilter.

Reply via email to