Rebase fail with new file

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



GitDev -


During a rebase of a feature branch to the master branch, I lost a new
file in a new directory.  I was able to recover by replaying the
rebase and taking exceptional actions.  However, I'm left with the
impression the git does not handle new files properly under some
rebase situations and gives the wrong advice to users.


I was able to recover by reseting the branch to the pre-rebase commit,
repeating the rebase, and manually applying the
.git/rebase-apply/patch at the critical point.  I do not understand
why the patch did not work through the rebase command.


Additionally, the git recommendation that after the failed patch, with
no local changes, a [git rebase --skip] is a likely resolution is just
wrong.  Skipping after a complete patch failure lead me to very broken
working directory.


Details follow, and the contents of the problematic commit are
attached (from [git show 2e9b460]).


Thanks

   Lee


This occurs with git version 1.8.3.2


[1024] $ git --version

git version 1.8.3.2


*** Details ***


Initial setup:  After working in branch feature/build-projects for
several days (with ~21 commits+pushes from branch point), I needed to
integrate new changes from the master branch.  Here are the steps from
my bash history:


  879  git checkout master

  880  git pull

  881  git checkout feature/build-projects

  882  git rebase master


There were a couple of conflicts, which I resolved and moved on with
[git rebase --continue].


At approximately the 14th commit, the rebase stopped with this message:


<bash>


Applying: STRY0057770: Add -Z parent for late build modules.

Using index info to reconstruct a base tree...

Falling back to patching base and 3-way merge...

error: Your local changes to the following files would be overwritten by merge:

glide-app-itbm/pom.xml

Please, commit your changes or stash them before you can merge.

Aborting

Failed to merge in the changes.

Patch failed at 0014 STRY0057770: Add -Z parent for late build modules.

The copy of the patch that failed is found in:

   /Users/lee.carver/Service-now/dev/glide04/git/glide/.git/rebase-apply/patch


When you have resolved this problem, run "git rebase --continue".

If you prefer to skip this patch, run "git rebase --skip" instead.

To check out the original branch and stop rebasing, run "git rebase --abort".

</bash>



Git status indicated no change, and inspection of the
glide-app-itbm/pom.xml showed no conflicts or unexpected content:


<bash>

[888] $ git status

# HEAD detached from ee6d51c

# You are currently rebasing branch 'feature/build-projects' on 'ee6d51c'.

#   (all conflicts fixed: run "git rebase --continue")

#


When I tried to  [git rebase --continue], the error message provided a
little more information.  Specifically, it mentions the added (new)
file glide-module-parent-z/pom.xml.


[904] $ git rebase --continue

Applying: STRY0057770: Add -Z parent for late build modules.

Applying: STRY0057770: Provide version properties for diagrammer and
email-notification.

Using index info to reconstruct a base tree...

M glide-app-itbm/pom.xml

A glide-module-parent-z/pom.xml

Falling back to patching base and 3-way merge...

Auto-merging glide-module-parent/pom.xml

Auto-merging glide-app-itbm/pom.xml

CONFLICT (content): Merge conflict in glide-app-itbm/pom.xml

Failed to merge in the changes.

Patch failed at 0015 STRY0057770: Provide version properties for
diagrammer and email-notification.

The copy of the patch that failed is found in:

   /Users/lee.carver/Service-now/dev/glide04/git/glide/.git/rebase-apply/patch


When you have resolved this problem, run "git rebase --continue".

If you prefer to skip this patch, run "git rebase --skip" instead.

To check out the original branch and stop rebasing, run "git rebase --abort".

</bash>



I made a minor edit to the glide-app-itbm/pom.xml (adding a "-z" to
the parent name), [git add -u], and then [git rebase --continue].


There were a couple of addition conflicts, some resolved with
--continue, some with --skip.


In the end, I was left with a working direction that did not contain
the new file glide-module-parent-z/pom.xml or other changes from the
problematic commit/rebase step (STRY0057770: Add -Z parent for late
build modules.).


*** Recovery ***


I was able to recover the branch, and complete the rebase with the
expected results only by manually applying the patch file at the
critical rebase step:


Starting in the feature branch, these actions were performed:


  928  git reset --hard 6793d9f

  930  git checkout master

  931  git pull

  932  git checkout feature/build-projects

  934  git rebase master


When the rebase of (STRY0057770: Add -Z parent for late build
modules.) stopped, I manually applied the patch


  959  git apply .git/rebase-apply/patch


With the appropriate adds, etc. I was able to [git rebase --continue]
to a successful conclusion.

Attachment: 2e9b460.out
Description: Binary data


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]