threads / patch / 21718

patch, 2 partscvsserver doc: database generally can not be reproduced consistently

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

## tl;dr

3 messages between Nov 23, 2009 and Nov 23, 2009. Diffs are folded; open one to read it.

replies: 2people: 1as markdown or json

Matthew Ogilvie· Nov 23, 2009, 02:07 UTC · lore

[PATCH 0/2] Miscellaneous documentation updates

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· Nov 23, 2009, 02:07 UTC · re: Matthew Ogilvie · lore

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(-)
Show changes to Documentation/git-cvsserver.txt +15 −4
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· Nov 23, 2009, 02:07 UTC · re: Matthew Ogilvie · lore

[PATCH 2/2] config documentation: some configs are auto-set by git-init

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(-)
Show changes to Documentation/config.txt +22 −2
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

← back to recent threads