Signed-off-by: Matthew Ogilvie <mmogilvi_git@xxxxxxxxxxxx> --- This was inspired because periodically someone asks about the "Index already exists in git repo" error message from git-cvsserver, and I noticed that two relevant and common starting points in the documentation (git-cvsserver and get-cvsimport) do not mention that a shared repository should be bare. Maybe someone should write up something similar for things like git-push, git-svn, various other import scripts, etc. I don't really know enough about any of them and how they interact with non-bare repositories to write reliable documentation. While in gitcvs-migration, I also noticed that it doesn't mention git-cvsexportcommit at all, but I'm not sure if it should just have a link in the "SEE ALSO" section, a sentence or two near where it talks about incremental imports (since if you need incrementatl import, you likely also need incremental export), or a whole new section. Since I've never used cvsexportcommit at all, I'm not real confident on what to say about how to use it with incremental import. - Matthew Ogilvie Documentation/git-cvsimport.txt | 6 ++++++ Documentation/git-cvsserver.txt | 3 +++ Documentation/gitcvs-migration.txt | 5 +++++ 3 files changed, 14 insertions(+), 0 deletions(-) diff --git a/Documentation/git-cvsimport.txt b/Documentation/git-cvsimport.txt index 2f9b35f..c90de06 100644 --- a/Documentation/git-cvsimport.txt +++ b/Documentation/git-cvsimport.txt @@ -31,6 +31,12 @@ to work with; after that, you need to 'git merge' incremental imports, or any CVS branches, yourself. It is advisable to specify a named remote via -r to separate and protect the incoming branches. +If you intend to set up a shared public repository that all developers can +read/write, or if you want to use linkgit:git-cvsserver[1], then you +probably want to make a bare clone of the imported repository, +and use the clone as the shared repository. +See linkgit:gitcvs-migration[7][CVS migration]. + OPTIONS ------- diff --git a/Documentation/git-cvsserver.txt b/Documentation/git-cvsserver.txt index 3310ae2..e22e107 100644 --- a/Documentation/git-cvsserver.txt +++ b/Documentation/git-cvsserver.txt @@ -133,6 +133,9 @@ write access to the log file and to the database (see <<dbbackend,Database Backend>>. If you want to offer write access over SSH, the users of course also need write access to the git repository itself. +You also need to ensure that each repository is "bare" (without a git index +file) for `cvs commit` to work. See linkgit:gitcvs-migration[7][CVS migration]. + [[configaccessmethod]] All configuration variables can also be overridden for a specific method of access. Valid method names are "ext" (for SSH access) and "pserver". The diff --git a/Documentation/gitcvs-migration.txt b/Documentation/gitcvs-migration.txt index 1db3f52..64c7550 100644 --- a/Documentation/gitcvs-migration.txt +++ b/Documentation/gitcvs-migration.txt @@ -143,6 +143,11 @@ work, you must not modify the imported branches; instead, create new branches for your own changes, and merge in the imported branches as necessary. +If you want a shared repository, you will need to make a bare clone +of the imported directory, as described above. Merging incremental +imports could then be handled much like any other development clone of +the shared repository. + Advanced Shared Repository Management ------------------------------------- -- 1.5.5.1.385.g2f071 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html