{"thread":{"id":"14069","subject":"[PATCH] Documentation cvs: Clarify when a bare repository is needed","startedAt":"2008-06-21T04:52:05Z","lastAt":"2008-06-21T04:52:05Z","messageCount":1,"participants":["Matthew Ogilvie"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"80532","messageId":"1214023925-12418-1-git-send-email-mmogilvi_git@miniinfo.net","threadId":"14069","inReplyTo":null,"subject":"[PATCH] Documentation cvs: Clarify when a bare repository is needed","fromName":"Matthew Ogilvie","fromEmail":"mmogilvi_git@miniinfo.net","sentAt":"2008-06-21T04:52:05Z","receivedAt":"2008-06-21T04:52:05Z","isPatch":true,"sender":{"key":"mmogilvi_git@miniinfo.net","avatar":null},"body":"\nSigned-off-by: Matthew Ogilvie <mmogilvi_git@miniinfo.net>\n---\n\nThis was inspired because periodically someone asks about the\n\"Index already exists in git repo\" error message from git-cvsserver,\nand I noticed that two relevant and common starting points in the\ndocumentation (git-cvsserver and get-cvsimport) do not mention\nthat 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\nWhile in gitcvs-migration, I also noticed that it doesn't mention\ngit-cvsexportcommit at all, but I'm not sure if it should just\nhave a link in the \"SEE ALSO\" section, a sentence or two near where\nit talks about incremental imports (since if you need incrementatl\nimport, you likely 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 2f9b35f..c90de06 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][CVS migration].\n+\n \n OPTIONS\n -------\ndiff --git a/Documentation/git-cvsserver.txt b/Documentation/git-cvsserver.txt\nindex 3310ae2..e22e107 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][CVS migration].\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 1db3f52..64c7550 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. Merging incremental\n+imports could then be handled much like any other development clone of\n+the shared repository.\n+\n Advanced Shared Repository Management\n -------------------------------------\n \n-- \n1.5.5.1.385.g2f071\n"}]}