# [PATCH 1/2] cvsserver doc: database generally can not be reproduced consistently

3 messages from 2009-11-23 to 2009-11-23. Participants: Matthew Ogilvie.
Thread: https://gitlist.dev/t/21718

## Matthew Ogilvie, 2009-11-23 02:07

Subject: [PATCH 0/2] Miscellaneous documentation updates
Message-ID: <1258942050-11423-1-git-send-email-mmogilvi_git@miniinfo.net>
URL: https://gitlist.dev/e/1258942050-11423-1-git-send-email-mmogilvi_git%40miniinfo.net

```
This is a series of documentation updates.  They are independent of
each other.

These are separate from and do not duplicate the core.autocrlf patch
from a week ago.

Matthew Ogilvie (2):
  cvsserver doc: database generally can not be reproduced consistently
  config documentation: some configs are auto-set by git-init

 Documentation/config.txt        |   24 ++++++++++++++++++++++--
 Documentation/git-cvsserver.txt |   19 +++++++++++++++----
 2 files changed, 37 insertions(+), 6 deletions(-)

```

## Matthew Ogilvie, 2009-11-23 02:07

Subject: [PATCH 1/2] cvsserver doc: database generally can not be reproduced consistently
Message-ID: <1258942050-11423-2-git-send-email-mmogilvi_git@miniinfo.net>
URL: https://gitlist.dev/e/1258942050-11423-2-git-send-email-mmogilvi_git%40miniinfo.net
In-Reply-To: <1258942050-11423-1-git-send-email-mmogilvi_git@miniinfo.net>

```
A regenerated git-cvsserver database is at risk of having different
CVS revision numbers from an incrementally updated database.  Mention
this in the the documentation, and remove an erroneous statement
to the contrary.

Signed-off-by: Matthew Ogilvie <mmogilvi_git@miniinfo.net>
---
 Documentation/git-cvsserver.txt |   19 +++++++++++++++----
 1 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/Documentation/git-cvsserver.txt b/Documentation/git-cvsserver.txt
index 785779e..99a7c14 100644
--- a/Documentation/git-cvsserver.txt
+++ b/Documentation/git-cvsserver.txt
@@ -182,10 +182,9 @@ Database Backend
 ----------------
 
 'git-cvsserver' uses one database per git head (i.e. CVS module) to
-store information about the repository for faster access. The
-database doesn't contain any persistent data and can be completely
-regenerated from the git repository at any time. The database
-needs to be updated (i.e. written to) after every commit.
+store information about the repository to maintain consistent
+CVS revision numbers. The database needs to be
+updated (i.e. written to) after every commit.
 
 If the commit is done directly by using `git` (as opposed to
 using 'git-cvsserver') the update will need to happen on the
@@ -204,6 +203,18 @@ write so it might not be enough to grant the users using
 'git-cvsserver' write access to the database file without granting
 them write access to the directory, too.
 
+The database can not be reliably regenerated in a
+consistent form after the branch it is tracking has changed.
+Example: For merged branches, 'git-cvsserver' only tracks
+one branch of development, and after a 'git-merge' an
+incrementally updated database may track a different branch
+than a database regenerated from scratch, causing inconsistent
+CVS revision numbers. `git-cvsserver` has no way of knowing which
+branch it would have picked if it had been run incrementally
+pre-merge. So if you have to fully or partially (from old
+backup) regenerate the database, you should be suspicious
+of pre-existing CVS sandboxes.
+
 You can configure the database backend with the following
 configuration variables:
 
-- 
1.6.4.GIT

```

## Matthew Ogilvie, 2009-11-23 02:07

Subject: [PATCH 2/2] config documentation: some configs are auto-set by git-init
Message-ID: <1258942050-11423-3-git-send-email-mmogilvi_git@miniinfo.net>
URL: https://gitlist.dev/e/1258942050-11423-3-git-send-email-mmogilvi_git%40miniinfo.net
In-Reply-To: <1258942050-11423-2-git-send-email-mmogilvi_git@miniinfo.net>

```
Add documentation for core.ignorecase, and mention git-init
in core.filemode and core.symlinks.

Signed-off-by: Matthew Ogilvie <mmogilvi_git@miniinfo.net>
---
 Documentation/config.txt |   24 ++++++++++++++++++++++--
 1 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/Documentation/config.txt b/Documentation/config.txt
index 78ee906..b2ee139 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -131,7 +131,11 @@ advice.*::
 core.fileMode::
 	If false, the executable bit differences between the index and
 	the working copy are ignored; useful on broken filesystems like FAT.
-	See linkgit:git-update-index[1]. True by default.
+	See linkgit:git-update-index[1].
++
+The default is true, except linkgit:git-clone[1] or linkgit:git-init[1]
+will probe and set core.fileMode false if appropriate when the
+repository is created.
 
 core.ignoreCygwinFSTricks::
 	This option is only used by Cygwin implementation of Git. If false,
@@ -144,6 +148,18 @@ core.ignoreCygwinFSTricks::
 	is true, in which case ignoreCygwinFSTricks is ignored as Cygwin's
 	POSIX emulation is required to support core.filemode.
 
+core.ignorecase::
+	If true, this option enables various workarounds to enable
+	git to work better on filesystems that are not case sensitive,
+	like FAT. For example, if a directory listing finds
+	"makefile" when git expects "Makefile", git will assume
+	it is really the same file, and continue to remember it as
+	"Makefile".
++
+The default is false, except linkgit:git-clone[1] or linkgit:git-init[1]
+will probe and set core.ignorecase true if appropriate when the repository
+is created.
+
 core.trustctime::
 	If false, the ctime differences between the index and the
 	working copy are ignored; useful when the inode change time
@@ -223,7 +239,11 @@ core.symlinks::
 	contain the link text. linkgit:git-update-index[1] and
 	linkgit:git-add[1] will not change the recorded type to regular
 	file. Useful on filesystems like FAT that do not support
-	symbolic links. True by default.
+	symbolic links.
++
+The default is true, except linkgit:git-clone[1] or linkgit:git-init[1]
+will probe and set core.symlinks false if appropriate when the repository
+is created.
 
 core.gitProxy::
 	A "proxy command" to execute (as 'command host port') instead
-- 
1.6.4.GIT

```
