{"thread":{"id":"14293","subject":"[PATCH v2] Documentation cvs: Clarify when a bare repository is needed","startedAt":"2008-07-05T04:43:41Z","lastAt":"2008-07-05T04:43:41Z","messageCount":1,"participants":["Matthew Ogilvie"],"isPatch":true,"patchVersion":2,"patchTotal":null},"messages":[{"id":"82266","messageId":"1215233021-19703-1-git-send-email-mmogilvi_git@miniinfo.net","threadId":"14293","inReplyTo":"1214023712-12361-1-git-send-email-mmogilvi_git@miniinfo.net","subject":"[PATCH v2] Documentation cvs: Clarify when a bare repository is needed","fromName":"Matthew Ogilvie","fromEmail":"mmogilvi_git@miniinfo.net","sentAt":"2008-07-05T04:43:41Z","receivedAt":"2008-07-05T04:43:41Z","isPatch":true,"sender":{"key":"mmogilvi_git@miniinfo.net","avatar":null},"body":"New users sometimes import a project and then immediately\ntry to use the imported repository as a central shared repository.\nThis provides pointers about setting up a bare repository for that\nin the parts of the documentation dealing with CVS migration.\n\nSigned-off-by: Matthew Ogilvie <mmogilvi_git@miniinfo.net>\n---\n\nI sent an earlier version of this patch about two weeks ago, but never\ngot any feedback about it.  This version rewords a couple of things\nand expands the commit message a little.  I'll probably abandon it\nafter this.\n\nThis was inspired because occasionally someone asks the mailing list\nabout the \"Index already exists in git repo\" error message\nfrom git-cvsserver, and I noticed that two relevant and common\nstarting points in the documentation (git-cvsserver and\nget-cvsimport) do not mention that a shared repository should be bare.\n\nMaybe someone should write up something similar for things like\ngit-push, git-svn, various other import scripts, etc.  I don't really\nknow enough about any of them and how they interact with non-bare\nrepositories to write reliable documentation.\n\nMostly unrelated: While in gitcvs-migration, I also noticed that\nit doesn't mention git-cvsexportcommit at all, but I'm\nnot sure if it should just have a link in the \"SEE ALSO\"\nsection, a sentence or two near where it talks about\nincremental imports (since if you need incrementatl import, you\nlikely also need incremental export), or a whole new section.\nSince I've never used cvsexportcommit at all, I'm not real\nconfident on what to say about how to use it with incremental import.\n\n          - Matthew Ogilvie\n\n Documentation/git-cvsimport.txt    |    6 ++++++\n Documentation/git-cvsserver.txt    |    3 +++\n Documentation/gitcvs-migration.txt |    5 +++++\n 3 files changed, 14 insertions(+), 0 deletions(-)\n\ndiff --git a/Documentation/git-cvsimport.txt b/Documentation/git-cvsimport.txt\nindex ed79bb8..aec1bca 100644\n--- a/Documentation/git-cvsimport.txt\n+++ b/Documentation/git-cvsimport.txt\n@@ -31,6 +31,12 @@ to work with; after that, you need to `git-merge` incremental imports, or\n any CVS branches, yourself.  It is advisable to specify a named remote via\n -r to separate and protect the incoming branches.\n \n+If you intend to set up a shared public repository that all developers can\n+read/write, or if you want to use linkgit:git-cvsserver[1], then you\n+probably want to make a bare clone of the imported repository,\n+and use the clone as the shared repository.\n+See linkgit:gitcvs-migration[7].\n+\n \n OPTIONS\n -------\ndiff --git a/Documentation/git-cvsserver.txt b/Documentation/git-cvsserver.txt\nindex e0e35db..71433d7 100644\n--- a/Documentation/git-cvsserver.txt\n+++ b/Documentation/git-cvsserver.txt\n@@ -133,6 +133,9 @@ write access to the log file and to the database (see\n <<dbbackend,Database Backend>>. If you want to offer write access over\n SSH, the users of course also need write access to the git repository itself.\n \n+You also need to ensure that each repository is \"bare\" (without a git index\n+file) for `cvs commit` to work. See linkgit:gitcvs-migration[7].\n+\n [[configaccessmethod]]\n All configuration variables can also be overridden for a specific method of\n access. Valid method names are \"ext\" (for SSH access) and \"pserver\". The\ndiff --git a/Documentation/gitcvs-migration.txt b/Documentation/gitcvs-migration.txt\nindex 4dc7ec5..af453f2 100644\n--- a/Documentation/gitcvs-migration.txt\n+++ b/Documentation/gitcvs-migration.txt\n@@ -143,6 +143,11 @@ work, you must not modify the imported branches; instead, create new\n branches for your own changes, and merge in the imported branches as\n necessary.\n \n+If you want a shared repository, you will need to make a bare clone\n+of the imported directory, as described above. Then treat the imported\n+directory as another development clone for purposes of merging\n+incremental imports.\n+\n Advanced Shared Repository Management\n -------------------------------------\n \n-- \n1.5.6.1.204.g699135\n"}]}