[svnbook commit] r1232 - in trunk/src/en: . book
svnbook-dev at red-bean.com
Sat Apr 23 14:55:09 CDT 2005
Date: Sat Apr 23 14:55:08 2005
New Revision: 1232
- don't use HEAD in merge command examples, it's not really a
good practice to encourage.
- mention pre-commit hooks as an option for controlling per-dir
write access with svnserve.
- Merge the too-short "external path-based authz" section into
- (Servers and Permissions: A Word of Warning): remove
assumption that all repositories are BDB-based.
* src/en/TODO: remove some TODOs.
also, move a TODO from me to fitz, since it's chapter 3.
--- trunk/src/en/TODO (original)
+++ trunk/src/en/TODO Sat Apr 23 14:55:08 2005
@@ -38,6 +38,16 @@
To be fixed by fitz:
+ - explain the "magic rule" of working copy management: you must
+ always use 'svn' to manipulate files and dirs (cp, mv, add, rm,
+ etc.), *except* for editing. Editing can be done without telling
+ svn; it notices this later on. users are craving these two
+ simple sentences as an overview at the beginning of the chapter;
+ for someone who has never used CVS, it's apparently quite
+ confusing as to what sort of manipulations do and don't require
@@ -50,25 +60,12 @@
not overwritten by a tarball explode wouldn't be missing, they'd
- - document the --ignore-externals option (added 'update',
- 'checkout', 'export', and 'status'). Don't forget the reference
- - document the --use-[pre|post]-commit-hook option to 'svnadmin
- load'. Don't forget the reference section.
To be fixed by sussman:
- - "magic rule" of working copy management: you must *always* use
- 'svn' to manipulate files and dirs (cp, mv, add, rm, etc.),
- *except* for editing. Editing can be done without telling svn;
- it notices this later on.
- need a giant warning-box about issue #2282. how our lack of
@@ -78,17 +75,9 @@
deleting the newer file versions and adding-with-history the
older file versions. Definitely a big 'gotcha' to watch out for.
- - "common use-cases for merging" shows -r405:HEAD. let's not
- encourage HEAD, since that can be a dangerous practice. should
- explain *why* we're not using head.
- - svnserve->set access controls->last paragraph:
- Don't just mention svnserve for path-based access;
- mention the pre-commit hooks for at controlling path-based write.
- explain shortcoming in http checkout authorization. because
checkout is done as one http request, there's only one chance to
authenticate (or not). if root-dir is anonymously readable, then
@@ -130,12 +119,22 @@
* svn log --limit
* Fixed length keywords
The format of fixed length keyword and its data is
- Unexpanded keyword: "$keyword:: $"
- Expanded keyword: "$keyword:: value $"
- Expanded kw with filling: "$keyword:: value $"
- Truncated keyword: "$keyword:: longval#$"
* New revprop hook features (ch05)
- Added fifth ACTION argument (A, M, or D)
- New/old revprop value available on stdin
+ - document the --use-[pre|post]-commit-hook option to 'svnadmin
+ load'. Don't forget the reference section.
+ - document the --ignore-externals option (added 'update',
+ 'checkout', 'export', and 'status'). Don't forget the reference
--- trunk/src/en/book/ch04.xml (original)
+++ trunk/src/en/book/ch04.xml Sat Apr 23 14:55:08 2005
@@ -1130,7 +1130,7 @@
$ svn update
At revision 405.
-$ svn merge -r 341:HEAD http://svn.example.com/repos/calc/branches/my-calc-branch
+$ svn merge -r 341:405 http://svn.example.com/repos/calc/branches/my-calc-branch
--- trunk/src/en/book/ch06.xml (original)
+++ trunk/src/en/book/ch06.xml Sat Apr 23 14:55:08 2005
@@ -476,10 +476,11 @@
<title>Servers and Permissions: A Word of Warning</title>
<para>First, remember that a Subversion repository is a
- collection of BerkeleyDB database files; any process which
- accesses the repository directly needs to have proper read
- and write permissions on the entire repository. If you're
- not careful, this can lead to a number of headaches. Be
+ collection of database files; any process which accesses the
+ repository directly needs to have proper read and write
+ permissions on the entire repository. If you're not
+ careful, this can lead to a number of headaches, especially
+ if you're using a BerkeleyDB database rather than FSFS. Be
sure to read <xref linkend="svn-ch-6-sect-5"/>.</para>
<para>Secondly, when configuring <command>svnserve</command>,
@@ -689,24 +690,17 @@
specific paths within the repository. For many projects and
sites, this level of access control is more than adequate.
However, if you need per-directory access control, you'll
- need to use Apache instead of <command>svnserve</command> as
- your server process.</para>
+ need to use either use Apache with
+ <command>mod_authz_svn</command> (see <xref
+ linkend="svn-ch-6-sect-4.4.2"/>) or use a
+ <command>pre-commit</command> hook script to control write
+ access (see <xref linkend="svn-ch-5-sect-2.1"/>). The
+ Subversion distribution comes with
+ <command>commit-access-control.pl</command> and the more
+ sophisticated <command>svnperms.py</command> scripts for use
+ in pre-commit scripts.</para>
- <sect2 id="svn-ch-6-sect-3.3">
- <title>External path-based authorization</title>
- <para>While <command>svnserve</command> itself does not provide
- any means to control per-path authorization, a pre-commit hook
- can be used to enforce per-path write access control. The
- Subversion distribution comes with
- <command>commit-access-control.pl</command> and the more
- sophisticated <command>svnperms.py</command> scripts for use
- in pre-commit scripts.</para>
More information about the svnbook-dev