Ian Jackson writes ("Re: Bug#910687: dgit: build-source and push-source disregard -wc"): > I think in fact that this needs to be more general. For example, with > --clean=dpkg-source: if dpkg-source leaves untracked files, this > should be detected. I think this check should happen any time dgit > builds a source package.
I made this table. You'll need a wide window and a fixed-width font and 8-column tabs. In summary: dgit used to always clean the tree. But push-source and build-source don't need to (when working in a playtree, ie without --include-dirty), so don't. I think we need to reintroduce some variant of tree cleaning to those operations. But I'm not really convinced that push-source and build-source ought ever to run rules clean. So I think we need a new interpretation of clean modes: ie, the source builds should look at the clean mode and do *something*: and that something will be to check that it doesn't look like a git-add was forgotten. And then I think we need a way to override this. Given the special nature of the various cases, I think that is going to be some new clean modes which are varients of existing ones. Ian. /: = without --include-dirty i: = with --include-dirty ACTION ON BINARIES BUILD ACTION ON SOURCE BUILD ignored files unignored files ignored files unignored files (These are gitignored files (These are un-ignored files, which could have resulted maybe from a build (buggy from a build without there gitignore), or maybe being any bug.) forgot to git add) quite possibly present hopefully not present often present in non-dgit pkgs dpkg-source } (runs rules clean) (runs rules clean) (used to run rules clean) (used to run rules clean) dpkg-source-d } /: disregarded /: disregarded do we want rules clean ? do we want rules clean ? i: used* i: used* without, makes check less good without, makes check less good (These are (These are un-gitignored /: disregarded /: disregarded gitignored files files left by rules clean. i: used* i: used* left by rules clean; Either buggy clean or probably a bug but forgot to git add.) not one we care about) /: ** should trip ** /: ** should trip ** ** wddu ? ** ** want opt to disregard ** ** want opt to disregard ** aka --dpkg-source,untracked git } deleted deleted /: disregarded /: disregarded git-ff } would be fine to delete but ** better to trip ? ** ** want opt to disregard ** i: used* i: used* check trips trips /: disregarded /: disregarded i: used* i: used* both: ** should trip ** both: ** should trip ** ** wci ? ** ** want opt to tolerate (only) ignored files ** aka --clean=check,ignore none /: disregarded /: disregarded /: disregarded /: disregarded i: used* i: used* i: used* i: used* * used means included in build source package, but will cause push failure