# Recover from a bad push in StGit

5 messages from 2006-08-18 to 2006-08-21. Participants: Robin Rosenberg, Catalin Marinas.
Thread: https://gitlist.dev/t/5325

## Robin Rosenberg, 2006-08-18 22:30

Subject: Recover from a bad push in StGit
Message-ID: <200608190030.47257.robin.rosenberg.lists@dewire.com>
URL: https://gitlist.dev/e/200608190030.47257.robin.rosenberg.lists%40dewire.com

```
Hi,

I recently did some reordering of patches and goofed up (not totally, but 
anyway). I pushed a number of patches and forgot one in the middle resulting 
in a merge  conflict. Pop won't work since I have local changes from the 
conflict and I don't want to resolve the conflict either since I didn't mean 
to push the patch at that point.

Is there a simple way of undoing a bad push? 

In this case I had a fresh export do help me out so I could just delete the 
patches and re-import them again, but what if I didn't?

-- robin

```

## Robin Rosenberg, 2006-08-19 00:11

Subject: Re: Recover from a bad push in StGit
Message-ID: <200608190211.29625.robin.rosenberg.lists@dewire.com>
URL: https://gitlist.dev/e/200608190211.29625.robin.rosenberg.lists%40dewire.com
In-Reply-To: <200608190030.47257.robin.rosenberg.lists@dewire.com>

```
lördag 19 augusti 2006 00:30 skrev Robin Rosenberg:
> Hi,
>
> I recently did some reordering of patches and goofed up (not totally, but
> anyway). I pushed a number of patches and forgot one in the middle
> resulting in a merge  conflict. Pop won't work since I have local changes
> from the conflict and I don't want to resolve the conflict either since I
> didn't mean to push the patch at that point.
>
> Is there a simple way of undoing a bad push?
It was so simple

	stg status --reset;stg pop

does the job. Sorry about the noise.

>
> In this case I had a fresh export do help me out so I could just delete the
> patches and re-import them again, but what if I didn't?
>

-- robin

```

## Catalin Marinas, 2006-08-21 09:35

Subject: Re: Recover from a bad push in StGit
Message-ID: <tnxk652torl.fsf@arm.com>
URL: https://gitlist.dev/e/tnxk652torl.fsf%40arm.com
In-Reply-To: <200608190030.47257.robin.rosenberg.lists@dewire.com>

```
Robin Rosenberg <robin.rosenberg.lists@dewire.com> wrote:
> I recently did some reordering of patches and goofed up (not totally, but 
> anyway). I pushed a number of patches and forgot one in the middle resulting 
> in a merge  conflict. Pop won't work since I have local changes from the 
> conflict and I don't want to resolve the conflict either since I didn't mean 
> to push the patch at that point.
>
> Is there a simple way of undoing a bad push? 
>
> In this case I had a fresh export do help me out so I could just delete the 
> patches and re-import them again, but what if I didn't?

"stg push --undo" (the same option for "refresh"; maybe I should add a
separate "undo" command) resets the local changes and it restores the
original boundaries of the patch (no information is lost). You could
use the latest snapshot as it has some bug-fixes from release 0.10.

-- 
Catalin

```

## Robin Rosenberg, 2006-08-21 15:03

Subject: Re: Recover from a bad push in StGit
Message-ID: <200608211703.59873.robin.rosenberg.lists@dewire.com>
URL: https://gitlist.dev/e/200608211703.59873.robin.rosenberg.lists%40dewire.com
In-Reply-To: <tnxk652torl.fsf@arm.com>

```
måndag 21 augusti 2006 11:35 skrev Catalin Marinas:
> Robin Rosenberg <robin.rosenberg.lists@dewire.com> wrote:
> > I recently did some reordering of patches and goofed up (not totally, but
> > anyway). I pushed a number of patches and forgot one in the middle
> > resulting in a merge  conflict. Pop won't work since I have local changes
> > from the conflict and I don't want to resolve the conflict either since I
> > didn't mean to push the patch at that point.
> >
> > Is there a simple way of undoing a bad push?
> >
> > In this case I had a fresh export do help me out so I could just delete
> > the patches and re-import them again, but what if I didn't?
>
> "stg push --undo" (the same option for "refresh"; maybe I should add a
> separate "undo" command) resets the local changes and it restores the
Not necessarily, but a hint about --undo when push/pop fail would have
helped me.

> original boundaries of the patch (no information is lost). You could
> use the latest snapshot as it has some bug-fixes from release 0.10.

Does refresh --undo make me see the state of the patch like it was before last 
refresh, ie. stgit remembers the history of my patces? I thought it dropped 
the references as obsolete.

-- robin

```

## Catalin Marinas, 2006-08-21 15:55

Subject: Re: Recover from a bad push in StGit
Message-ID: <b0943d9e0608210855m71c29a21y3d4941ec721e0737@mail.gmail.com>
URL: https://gitlist.dev/e/b0943d9e0608210855m71c29a21y3d4941ec721e0737%40mail.gmail.com
In-Reply-To: <200608211703.59873.robin.rosenberg.lists@dewire.com>

```
On 21/08/06, Robin Rosenberg <robin.rosenberg.lists@dewire.com> wrote:
> måndag 21 augusti 2006 11:35 skrev Catalin Marinas:
> > "stg push --undo" (the same option for "refresh"; maybe I should add a
> > separate "undo" command) resets the local changes and it restores the
> Not necessarily, but a hint about --undo when push/pop fail would have
> helped me.

It is in the "stg help push" output but I could just display it when
the conflict happened.

> > original boundaries of the patch (no information is lost). You could
> > use the latest snapshot as it has some bug-fixes from release 0.10.
>
> Does refresh --undo make me see the state of the patch like it was before last
> refresh, ie. stgit remembers the history of my patces? I thought it dropped
> the references as obsolete.

The references before the last command are stored and they can be
obtained by "stg id <patch>//(bottom|top).old". As long as you haven't
run a git prune on your repository, you should be able to undo the
refresh.

I'm (slowly) working on patch history support using reflogs and (when
ready) you should be able to retrieve a previous state of the patch as
long as you haven't pruned your GIT repository.

-- 
Catalin

```
