On Sep 27, 2011, at 8:42 PM, Godmar Back <god...@gmail.com> wrote:

> On Tue, Sep 27, 2011 at 10:18 PM, David Aguilar <dav...@gmail.com> wrote:
> On Sep 27, 2011, at 6:30 PM, Godmar Back <god...@gmail.com> wrote:
> 
>> 
>> Hi,
>> 
>> I'm trying to migrate from CVS to git. To that end, I'm trying to use the 
>> 'git cvsimport' command to import an existing CVS repository into a remote 
>> bare git repository I've created.
>> 
>> I have set up the git repository using 'git init --bare repos.git' and I 
>> have verified that I can clone this (empty) repository over an ssh 
>> transport. I have set up ssh public key authentication successfully.
>> 
>> However, when I try to import the CVS repository into the remote repository 
>> using:
>> 
>> git cvsimport -i -r git@mygithost:.git -v -d :pserver:.... reposname
> 
> I think the error is because you are trying to tell it to use the remote 
> repo, which is not how it works.
> 
> the remote -r flag is best omitted for this use case (one-time conversion)
> 
> create a new local repo and do it there:
> 
> git cvsimport -C newrepo  ...
> 
> then push it to your shared repo
> 
> cd newrepo
> git remote add origin git@host:foo.git
> git push origin master
> 
> then you're best off doing new work in clones and discard the repo used for 
> the conversion. 
> 
> 
> Thanks for your reply. However, shouldn't it be 
> 
> git push origin --all
> 
> to make sure all branches that were in the CVS will be available in the new 
> git repository?
> 
>  - Godmar

that's up to your preference. when I convert cvs repos I've never needed its 
old branches. ymmv.  they just kinda get in the way for me; I personally prefer 
to just get a master branch when switching to git and leave the old stuff 
behind.

after converting cvs repos I also like to filter-branch it to rewrite commits 
to have better authorship by looking up name/email  in ldap (or some other 
method) from the username.  filter-branch can be twisted into doing some good 
stuff after importing and before everyone starts basing work on it.


> git clone git@host:foo.git
> 
> there's a section where importing a cvs archive is covered in this doc:
> 
> http://manpages.ubuntu.com/manpages/lucid/man7/gitcvs-migration.7.html
> 
>> 
>> it'll start retrieving the CVS histories, but then fail with:
>> 
>> fatal: Cannot lock the ref 'refs/remotes/git@mygithost:repos.git/master'.
>> Cannot write branch master for update: Bad file descriptor
>> 
>> What does that mean, and what is the correct workflow to migrate from CVS to 
>> git?
>> I'm using git 1.7.0.4.
>> 
>> Note that I wish to keep CVS's centralized model for now by using a 
>> centralized bare repository that will function as a shared upstream for all 
>> developers in our project; that's why I am trying to import the CVS 
>> repository into it.
>> 
>> Thanks for any help.
>> 
>>  - Godmar
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Git for human beings" group.
>> To post to this group, send email to git-users@googlegroups.com.
>> To unsubscribe from this group, send email to 
>> git-users+unsubscr...@googlegroups.com.
>> For more options, visit this group at 
>> http://groups.google.com/group/git-users?hl=en.
> 

-- 
You received this message because you are subscribed to the Google Groups "Git 
for human beings" group.
To post to this group, send email to git-users@googlegroups.com.
To unsubscribe from this group, send email to 
git-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/git-users?hl=en.

Reply via email to