git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: stg pull/rebase

From
CMCatalin Marinas <catalin.marinas@gmail.com>
Date
Jun 11, 2008, 17:00 UTC
Message-ID
<b0943d9e0806111000s4faecfa8o4e4042245c6ff2ba@mail.gmail.com>
In-Reply-To
<20080611061110.GA15034@diana.vm.bytemark.co.uk>
2008/6/11 Karl Hasselström <kha@treskal.com>:
Show 16 quoted lines
> On 2008-06-10 16:43:27 +0100, Catalin Marinas wrote:
>
>> 2008/6/10 Karl Hasselström <kha@treskal.com>:
>> > But what exactly is "rebasecmd" useful for, when you already have
>> > "fetchcmd" and a built-in rebase?
>>
>> In case the built-in rebase is not enough. Can you use "git svn
>> fetch" followed by plain "git rebase"? There are some comments in
>> git-svn.txt that recommend to use "git svn rebase" to preserve
>> linear history.
>
> You most definitely can. I've been doing so daily for more than a
> year:
>
>  $ git svn fetch -q
>  $ stg rebase -m svn/branch

Maybe, I haven't tried (I just followed the git-svn documentation). Is the imported svn history linear? If it works, I no longer have a need for a rebasecmd option.

Show 5 quoted lines
> The _advantage_ of having fetch be the only external command (besides
> reducing complexity) is that we can make it all one single StGit
> transaction (since the fetch runs to completion before the transaction
> starts). This means that we don't have to touch files unnecessarily,
> which means less recompilation.
That's a good reason.
Show 11 quoted lines
>> I think it's more of an language interpretation issue (I'm not a
>> native English speaker). I see the "pull" action as pulling (can't
>> find meaningful synonyms) remote changes into the current branch
>> (i.e. fetch + merge). I think you see it as pulling the current
>> stack onto a new base (i.e. rebase).
>
> Well, the reason I proposed to keep "stg pull" rather than "stg
> rebase" is that I agree with you that "pull" means "fetch _and_
> integrate". (Let's try a new term; "integrate" means either "merge",
> "fast-forward", or "rebase" (none of which implies any fetching, of
> course).) This is how I imagine it working:
[...]
Show 14 quoted lines
> Any of --no-fetch/--fetch-only can be combined with any of
> --fast-forward/--rebase/--merge.
>
> If stg pull is given a committish argument, this automatically means
> --no-fetch, and causes it to integrate with that committish rather
> than the branch specified in the config. We might want to allow other
> kinds of arguments as well, I don't know.
>
> And of course,
>
>  stg rebase [committish]
>
>    The same as "stg pull --no-fetch --rebase [committish]"; that is,
>    no fetch, just rebase.
I'm OK, as long as we keep a "rebase" alias :-)
Show 7 quoted lines
>> See my interpretation of the word "pull". I can change my mind, no
>> problem, but it would be interesting to see what a native English
>> speaker says (though you are probably closer to English than me
>> :-)).
>
> Mph, I don't know about me being "closer". I thought you were the one
> living in the UK? ;-)

I was more thinking about the native language roots (Germanic vs Latin in my case, I've only lived in the UK for 7 years) :-)

> Regardless, I don't think we're actually in disagreement -- as I
> understand it, we both think that pull = fetch + integrate. And
> "rebase" is one possible value of "integrate".

I think the disagreement is that I consider "fetch" in the above equality to be mandatory. But I think your proposal is OK.

-- 
Catalin
Previous: Karl HasselströmNext: Karl Hasselström
Message 8 of 9 in “stg pull/rebase”
  1. Karl HasselströmJun 7, 2008
  2. Jakub NarebskiJun 7, 2008
  3. Karl HasselströmJun 7, 2008
  4. Catalin MarinasJun 10, 2008
  5. Karl HasselströmJun 10, 2008
  6. Catalin MarinasJun 10, 2008
  7. Karl HasselströmJun 11, 2008
  8. Catalin MarinasJun 11, 2008
  9. Karl HasselströmJun 11, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.