2011/9/27 Eduardo Falcão <edu.falcao@xxxxxxxxx>
I'm working in a project with Jgit 1.0 and I want to migrate to 1.1, but I'm stuck in one problem. Let me explain the workflow:
1) Let's assume that in my remote there are 3 branches: master, b1 and b2.
2) Clone remote repository with clonecommand passing the branch "master". This way my local repository is created and the local branch "master" is linked to the remote master.
With JGit 1.0, I could run clonecommand again in the same local repository passing "refs/heads/b1", and a local branch is created linked to remote. But in 1.1 an error occurs, saying that I cannot clone into a folder that already exists and is not empty. What do I have to do? All I want is to checkout in a branch that not exists locally, but it has to track the remote branch and have the same name.
you can't clone into an existing repo, if that worked in 1.0 this was a bug
instead try the following:
- fetch the branch e.g. "foo" you want to have locally using refspec
this creates the remote tracking branch refs/remotes/origin/foo
- create a local branch starting from this remote tracking branch and set the
upstream configuration, you can do that using CheckoutCommand
- if you want to fetch updates and update this local branch run pull,
the upstream configuration has established a tracking relationship
so pull knows where to merge the new changes it has fetched for
foo from the remote repository
use the corresponding commands from org.eclipse.jgit.api and
see the corresponding tests in bundle org.eclipse.jgit.test for
ps: With original git command line, if i checkout in a branch that not exist locally but exists in remote, it is automatically created locally and linked to remote
which command do you use for that ?