Index: en_US.ISO8859-1/articles/committers-guide/article.xml
===================================================================
--- en_US.ISO8859-1/articles/committers-guide/article.xml
+++ en_US.ISO8859-1/articles/committers-guide/article.xml
@@ -894,24 +894,8 @@
Adding and Removing Files
-
- Before adding files, get a copy of auto-props.txt
- (there is also a
- ports tree specific version) and add it to
- ~/.subversion/config according to the
- instructions in the file. If you added something before
- reading this, use svn rm --keep-local
- for just added files, fix your config file and re-add them
- again. The initial config file is created when you first
- run a svn command, even something as simple as
- svn help.
-
-
- Files are added to a
- SVN repository with svn
- add. To add a file named
+ Files are added to a SVN repository
+ with svn add. To add a file named
foo, edit it, then:&prompt.user; svn add foo
@@ -927,32 +911,173 @@
$&os;$ string.
+ If a file is missing a
+ Subversion property, it can be
+ easily added. See .
+
Files can be removed with svn
remove:&prompt.user; svn remove foo
- Subversion does not require deleting the file before
- using svn rm, and indeed complains if
- that happens.
+
+ Subversion does not require deleting the file before
+ using svn rm, and indeed complains if
+ that happens.
+
+
+ Use svn mkdir to combine the creation
+ of the directory and the adding of it:
- It is possible to add directories with
+ &prompt.user; svn mkdir bar
+
+ It is also possible to add existing directories with
svn add:&prompt.user; mkdir bar
&prompt.user; svn add bar
- Although svn mkdir makes this easier
- by combining the creation of the directory and the adding of
- it:
+ Like files, directories are removed with svn
+ rm. There is no separate command specifically
+ for removing directories.
- &prompt.user; svn mkdir bar
+ &prompt.user; svn rm bar
+
- Like files, directories are removed with
- svn rm. There is no separate command
- specifically for removing directories.
+
+ Dealing with Subversion
+ Properties
+
+ In the base and ports
+ Subversion repositories,
+ properties are set automatically when a file is added. This
+ is achieved by using the svn:auto-props
+ property. No auto-props file needs to be used. The base
+ system auto-props.txt should not be
+ used. The current list of automatic properties can be seen
+ with:
+
+ &prompt.user; svn propget svn:auto-props https://svn.freebsd.org/ports
+bsd.*.mk = svn:keywords=FreeBSD=%H
+distinfo* = fbsd:nokeywords=yes
+extrapatch-* = fbsd:nokeywords=yes
+extra-patch-*= fbsd:nokeywords=yes
+patch-* = fbsd:nokeywords=yes
+pkg-* = fbsd:nokeywords=yes
+Makefile* = svn:keywords=FreeBSD=%H
+* = svn:eol-style=native; svn:mime-type=text/plain
+
+&prompt.user; svn propget svn:auto-props https://svn.freebsd.org/base
+*.c = svn:eol-style=native; svn:keywords=FreeBSD=%H; svn:mime-type=text/plain
+*.h = svn:eol-style=native; svn:keywords=FreeBSD=%H; svn:mime-type=text/plain
+*.s = svn:eol-style=native; svn:keywords=FreeBSD=%H; svn:mime-type=text/plain
+*.S = svn:eol-style=native; svn:keywords=FreeBSD=%H; svn:mime-type=text/plain
+*.cc = svn:eol-style=native; svn:keywords=FreeBSD=%H; svn:mime-type=text/plain
+[...]
- &prompt.user; svn rm bar
+
+ Some subdirectories may have additional
+ auto-properties, to find out which, the
+ argument for svn
+ propget can be used, for example:
+
+ &prompt.user; svn propget -R svn:auto-props https://svn.freebsd.org/ports/head/
+https://svn.freebsd.org/ports/head/Mk - *.mk = svn:keywords=FreeBSD=%H
+
+https://svn.freebsd.org/ports/head/Mk/Scripts - *.sh = svn:keywords=FreeBSD=%H
+
+https://svn.freebsd.org/ports/head/misc/freebsd-release-manifests/files/MANIFESTS - *=svn:eol-style=native; fbsd:nokeywords=on; svn:mime-type=text/plain
+
+
+ The Documentation repository does not use
+ svn:auto-props, when adding files, it may
+ be necessary to add properties manually.
+
+
+ When adding a file, it is easy to see what properties
+ have been automatically added to it using svn
+ proplist. For example, in the ports
+ tree:
+
+ &prompt.user; svn add Makefile pkg-plist
+A Makefile
+A pkg-plist
+&prompt.user; svn proplist Makefile pkg-plist
+Properties on 'Makefile':
+ svn:eol-style
+ svn:keywords
+ svn:mime-type
+Properties on 'pkg-plist':
+ fbsd:nokeywords
+ svn:eol-style
+ svn:mime-type
+
+ It is also possible to get the value of all the
+ properties of a file using svn proplist
+ -v:
+
+ &prompt.user; svn proplist -v Makefile pkg-plist
+Properties on 'Makefile':
+ svn:eol-style
+ native
+ svn:keywords
+ FreeBSD=%H
+ svn:mime-type
+ text/plain
+Properties on 'pkg-plist':
+ fbsd:nokeywords
+ yes
+ svn:eol-style
+ native
+ svn:mime-type
+ text/plain
+
+
+
+ Adding a Missing Subversion Property
+
+ It may happen that some file does not have the correct
+ properties and they need to be added or removed manually.
+ For example, if the file contains a
+ $FreeBSD$ keyword and the
+ server complains about it:
+
+ &prompt.user; svn ci foo
+Adding foo
+Transmitting file data .done
+Committing transaction...
+svn: E165001: Commit failed (details follow):
+svn: E165001: Commit blocked by pre-commit hook (exit code 1) with output:
+Path "head/foo" is missing the svn:keywords property (or an fbsd:nokeywords override)
+== Pre-commit problem count: 1
+
+svn: E165001: Your commit message was left in a temporary file:
+svn: E165001: '/usr/ports/svn-commit.tmp'
+
+ If the file contains a
+ $FreeBSD$ keyword, then
+ use svn propset to add the required
+ property, and commit the file again:
+
+ &prompt.user; svn propset svn:keywords FreeBSD=%H foo
+
+ If the file does not contain the keyword, or it
+ contains a keyword, but it should not be modified, for
+ example, if the file is a patch. The
+ fbsd:nokeywords keyword need to be
+ added:
+
+ &prompt.user; svn propset fbsd:nokeywords yes foo
+
+ The file can then be committed:
+
+ &prompt.user; svn ci foo
+Adding foo
+Transmitting file data .done
+Committing transaction...
+Committed revision 85645.
+