# Re: "git svn reset" only resets current branch ?

3 messages from 2009-07-07 to 2009-07-07. Participants: Yann Dirson, Ben Jackson, Eric Wong.
Thread: https://gitlist.dev/t/20045

## Yann Dirson, 2009-07-07 08:01

Subject: Re: "git svn reset" only resets current branch ?
Message-ID: <46974.10.0.0.1.1246953668.squirrel@intranet.linagora.com>
URL: https://gitlist.dev/e/46974.10.0.0.1.1246953668.squirrel%40intranet.linagora.com

```
> I think the current behavior is a reasonable default; it's least
> surprising to me and the user could more easily rerun with "--all" if
> needed.  If --all were the default, the user could potentially
> have to refetch a lot of data they didn't want to.

As an alternative, we could also allow "git svn reset" to take us back
into the future to undo any such mistake without refetching.

I'm not sure it would be the best to keep reset act on a single branch,
where eg. fetch acts on all branches, and already has a --all flag, which
is not yet documented, and seems to have a different meaning (if that
wasn't obvious, I have still not had a look at what it really does ;)

```

## Ben Jackson, 2009-07-07 18:21

Subject: Re: "git svn reset" only resets current branch ?
Message-ID: <20090707182109.GA3158@kronos.home.ben.com>
URL: https://gitlist.dev/e/20090707182109.GA3158%40kronos.home.ben.com
In-Reply-To: <46974.10.0.0.1.1246953668.squirrel@intranet.linagora.com>

```
On Tue, Jul 07, 2009 at 10:01:08AM +0200, Yann Dirson wrote:
> 
> As an alternative, we could also allow "git svn reset" to take us back
> into the future to undo any such mistake without refetching.

You can't do that directly, since data is destroyed (specifically, the
rev_map is truncated back to the selected revision).  However, you can
"git reset" the branch back to where it was using the reflog, and then
the next git-svn command you run will rebuild the rev_map from the
comment metadata (obviously you're out of luck if you set "no_metadata").

It's possible that "git-svn reset" should be saving something like
ORIG_HEAD (comments welcome) but that does conflict with the idea of
adding "--all" or defaulting to "--all" behavior.

> I'm not sure it would be the best to keep reset act on a single branch,
> where eg. fetch acts on all branches, and already has a --all flag, which
> is not yet documented, and seems to have a different meaning (if that
> wasn't obvious, I have still not had a look at what it really does ;)

Right, I don't really grok the branch thing on the fetch side either.
I was hoping for guidance from people who use it on what the expected
behavior is.  I see even branch users are fuzzy.  ;-)

The one area where I can definitely see a potential problem is if you
reset/refetched one branch (and the revs actually changed, eg due to
permissions changes or --ignore-paths changes) and then did a merge.
On the other hand, the documentation already suggests you not try to
do SVN branch merges with git-svn.

-- 
Ben Jackson AD7GD
<ben@ben.com>
http://www.ben.com/

```

## Eric Wong, 2009-07-07 20:28

Subject: Re: "git svn reset" only resets current branch ?
Message-ID: <20090707202826.GA8618@dcvr.yhbt.net>
URL: https://gitlist.dev/e/20090707202826.GA8618%40dcvr.yhbt.net
In-Reply-To: <46974.10.0.0.1.1246953668.squirrel@intranet.linagora.com>

```
Yann Dirson <ydirson@linagora.com> wrote:
> > I think the current behavior is a reasonable default; it's least
> > surprising to me and the user could more easily rerun with "--all" if
> > needed.  If --all were the default, the user could potentially
> > have to refetch a lot of data they didn't want to.
> 
> As an alternative, we could also allow "git svn reset" to take us back
> into the future to undo any such mistake without refetching.
> 
> I'm not sure it would be the best to keep reset act on a single branch,
> where eg. fetch acts on all branches, and already has a --all flag, which
> is not yet documented, and seems to have a different meaning (if that
> wasn't obvious, I have still not had a look at what it really does ;)

fetch with --all fetches from all "svn-remotes" defined in the config
(it's rare to have more than one).  It's roughly equivalent to:

  git remote | xargs -n1 git fetch

As far as reset behavior goes, I'll leave you and Ben to decide how/what
to do since I've never used it myself (I rarely even use git svn
nowadays).

-- 
Eric Wong

```
