Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

If "repo start newbranch" fails partway through, recovery is annoying #22

Closed
GoogleCodeExporter opened this issue Apr 8, 2015 · 5 comments

Comments

@GoogleCodeExporter
Copy link

Reported by Christopher Tate <ctate@google.com> on Fri Apr 10 11:29:10 PDT 2009
Source: JIRA REPO-22

Here's the situation I was in that I had to recover from:

0. I was working in a topic branch called "oldbranch", and in one package I
had made some edits that had not yet been committed.
1. From the top level, I typed "repo start newbranch"
2. The branch was successfully started and made current in fifty-ish packages,
but then when it got to the package in which I had uncommitted edits, branch
creation failed and repo errored out.

At this point, the repo was in a badly mixed state:  newbranch had been
created and made current in half the repository, but oldbranch was still
current in the other half.  The desired final state here was that newbranch be
created and made current in the entire repo.  Here's what I did to recover:

3. cd to the package in which I had uncommitted edits, "git commit -a" to
commit them.
4. cd back to the top of the repo, and reran "repo start newbranch".  This
errored out immediately, saying that the branch already existed.
5. I typed "repo abandon newbranch" to blow away the new branch in all the
packages in which it had been successfully created
6. I then typed "repo start newbranch" again, which finally set up the new
branch everywhere.

IMHO the biggest problem here was that Step 4 failed; I don't see why it
should be an error to attempt to (create and make current) a branch that
happens to already exist in some packages.  At worst this might be a noop,
right?  And the rest of the time, it would do exactly what I was attempting:
taking a partial-branch-existence state and making it more universal.

Original issue reported on code.google.com by code-rev...@gtempaccount.com on 24 Sep 2009 at 9:10

@GoogleCodeExporter
Copy link
Author

Comment by Shawn Pearce <sop@google.com> on Fri Apr 10 11:34:18 PDT 2009

Actually, two things should be fixed:

- #1 should have errored out if the switch wouldn't go cleanly anyway in at
least one project.  This mirrors with behavior in "git checkout -b".

- As you state, #4 shouldn't have errored out.

Fixing #4 is easier than #1.

Original comment by code-rev...@gtempaccount.com on 24 Sep 2009 at 9:10

@GoogleCodeExporter
Copy link
Author

Update by Shawn Pearce <sop@google.com> on Fri Apr 10 13:49:27 PDT 2009

Original comment by code-rev...@gtempaccount.com on 24 Sep 2009 at 9:10

@GoogleCodeExporter
Copy link
Author

Update by Shawn Pearce <sop@google.com> on Fri Apr 10 13:49:29 PDT 2009

Original comment by code-rev...@gtempaccount.com on 24 Sep 2009 at 9:11

@GoogleCodeExporter
Copy link
Author

Comment by Shawn Pearce <sop@google.com> on Fri Apr 10 16:25:32 PDT 2009

Fixed by https://review.source.android.com/9500

Original comment by code-rev...@gtempaccount.com on 24 Sep 2009 at 9:11

@GoogleCodeExporter
Copy link
Author

Update by Shawn Pearce <sop@google.com> on Fri Apr 10 16:25:32 PDT 2009

Fixed in version 1.6.5.

Original comment by code-rev...@gtempaccount.com on 24 Sep 2009 at 9:11

  • Changed state: Fixed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant