X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=dgit.7;h=7ad5abaee9446462544d85cdd3fb89452783a3d8;hp=70165a1b69d0d9f745ae6e2f2a92135f985a8870;hb=3991eff63504d351b858d3a84392dbb03245946c;hpb=a738f98cb36e7f1dfe995d16426c475eced61ee2 diff --git a/dgit.7 b/dgit.7 index 70165a1b..7ad5abae 100644 --- a/dgit.7 +++ b/dgit.7 @@ -197,6 +197,17 @@ import existing vcs history (which might not be faithful to dgit's invariants) or previous non-Dgit uploads (which would not provide a very rich history). + +git represents only file executability. +git does not represent empty directories, +or any leaf objects other than plain files and symlinks. +The behaviour of Debian source package formats +on objects with unusual permissions is complicated. +Some pathological Debian source packages will no longer build +if empty directories are pruned +(or if other things not reproduced by git are changed). +Such sources cannot be worked with properly in git, +and therefore not with dgit either. .SH READ-ONLY DISTROS Distros which do not maintain a set of dgit history git repositories can still be used in a read-only mode with dgit. Currently Ubuntu @@ -243,6 +254,19 @@ If you are not the maintainer, you do not need to worry about the source format of the package. You can just make changes as you like in git. If the package is a `3.0 (quilt)' package, the patch stack will usually not be represented in the git history. +.SH FILE EXECUTABILITY +Debian source package formats +do not always faithfully reproduce +changes to executability. +But dgit insists that the result of dgit clone is identical +(as far as git can represent - see Limitations, above) +to the result of dpkg-source -x. + +So files that are executable in your git tree +must be executable in the result of dpkg-source -x +(but often aren't). +If a package has such troublesome files, +they have to be non-executable in dgit-compatible git branches. .SH FORMAT 3.0 (QUILT) For a format `3.0 (quilt)' source package, dgit may have to make a commit on your current branch to contain metadata used by quilt and