diff options
3 files changed, 37 insertions, 12 deletions
diff --git a/dgit b/dgit
index 3d81558..e4cc92c 100755
--- a/dgit
+++ b/dgit
@@ -3392,7 +3392,7 @@ sub check_gitattrs ($$) {
# oh dear, found one
print STDERR <<END;
dgit: warning: $what contains .gitattributes
-dgit: .gitattributes have not been defused. See GITATTRIBUTES in dgit(7).
+dgit: .gitattributes have not been defused. Recommended: dgit setup-new-tree.
close $gafl;
diff --git a/dgit.1 b/dgit.1
index 8cf3928..8869149 100644
--- a/dgit.1
+++ b/dgit.1
@@ -216,9 +216,10 @@ public key in its keyring (but not your private key, obviously).
.B dgit setup-new-tree
Configure the current working tree the way that dgit clone would have
set it up. Like running
-.B dgit setup-useremail
+.BR "dgit setup-useremail" ,
.B setup-mergechangelogs
+.B setup-gitattributes
(but only does each thing if dgit is configured to do it automatically).
You can use these in any git repository, not just ones used with
the other dgit operations.
@@ -235,6 +236,29 @@ Configures a git merge helper for the file
which uses
.BR dpkg-mergechangelogs .
+.B dgit setup-gitattributes
+Set up the working tree's
+.B .git/info/attributes
+to disable all transforming attributes for all files.
+This is done by defining a macro attribute
+.B dgit-defuse-attrs
+and applying it to
+.BR * .
+For why, see
+.BR dgit(7) .
+(If there is already a macro attribute line
+.B [attr]dgit-defuse-attrs
+in .git/info/attributes
+(whatever its effects),
+this operation does nothing further.
+This fact can be used to defeat or partially defeat
+dgit setup-gitattributes
+and hence
+dgit setup-new-tree.)
.B dgit quilt-fixup
`3.0 (quilt)' format source packages need changes representing not
only in-tree but also as patches in debian/patches. dgit quilt-fixup
diff --git a/dgit.7 b/dgit.7
index 09bb8f4..70165a1 100644
--- a/dgit.7
+++ b/dgit.7
@@ -205,6 +205,9 @@ is configured this way.
git has features which can automatically transform files
as they are being copied between the working tree
and the git history.
+The attributes can be specified in the source tree itself,
+.BR .gitattributes .
See \fBgitattributes\fP(5).
These transformations are context-sensitive
@@ -213,25 +216,23 @@ so dgit operates on the principle that
the dgit git history contains the actual contents of the package.
(When dgit is manipulating a .dsc,
it does so in a private area,
-where the transforming gitattributes are defused (disabled),
+where the transforming gitattributes are defused,
to achieve this.)
-If transforming gitattributes used,
+If transforming gitattributes are used,
they can cause trouble,
because the working tree files can differ from
the git revision history
(and therefore from the source packages).
+dgit warns if it finds a .gitattributes file
+(in a package being fetched or imported),
+unless the transforming gitattributes have been defused.
-So dgit clone
+dgit clone
and dgit setup-new-tree
disable transforming gitattributes
by default,
-by creating a .git/info/attributes.
-When fetching or importing sources
-dgit warns if it finds .gitattributes file
-and the transforming gitattributes have not been defused
-(e.g. in the case of a tree not made with dgit clone).
+by creating a suitable .git/info/attributes.
.B dgit setup-new-tree