Felipe Sateler writes ("dgit: can't handle debian branch with removed files"):
> Control: retitle -1 dgit: can't handle debian branch with removed files
>
> Replying to the new bug because indeed this is a different problem.
> I've found the cause. While my repo was faulty, I wonder if dgit can
> be made to work better in this case.
...
> OK, so now we can investigate what is wrong. Lets diff the first git commit:
>
> % git diff --stat master..d510ca798480f37fc567
> debian/patches/debian-specific/lua-link.diff | 6 +-
> doc/latex/doxygen.sty | 78 +++++++++++++++++++++++
> frontends/CsoundVST/ScoreGeneratorVstUi.cpp | 169
> ++++++++++++++++++++++++++++++++++++++++++++++++++
> frontends/CsoundVST/ScoreGeneratorVstUi.h | 34 ++++++++++
> 4 files changed, 282 insertions(+), 5 deletions(-)
"master" is your Debian working branch I guess.
> The diff in the patch is removal of `diff --git` lines generated by
> gbp pq. The other files are not present in the master branch but they
> are in the upstream tarball. It appears that at some point in the
> history I removed them from the debian branch[1]. This breaks dgit's
> expectations and thus the error we saw before. dpkg-source is fine
> with this because it ignores file removals. Restoring these files
> makes `dgit --clean=git sbuild` work.
I think what you are saying is that your HEAD ("master", I think) does
not contain these files. However, the source package that you are
expecting to generate _does_ contain them, since there is no patch to
remove them.
Unless something is done about it, this violates dgit's fundamental
design principle, which is that the git tree you push should be
exactly the same as "dpkg-source -x" on the source package.
I think there are three options:
1. You could delete the files from the orig tarball (eg by repacking).
2. You could re-add the files to your master branch.
3. You could add a quilt patch which deletes them.
4. dgit could automatically generate a quilt patch which deletes them
and include it only in the dgit view.
Obviously in some cases (1) or (2) would be desirable, but often they
wouldn't. That leaves us with (3) or (4).
What is your opinion about the relative merits of you adding the
patch, in your own gbp branch, vs dgit "secretly" adding the deletion
patch in the dgit view ?
Thanks,
Ian.