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

Re: [PATCH QGit RFC] Fix "Save patch..." on a commit range

From
Markus Heidelberg <markus.heidelberg@web.de>
Date
Jun 13, 2009, 10:11 UTC
Message-ID
<200906131211.39361.markus.heidelberg@web.de>
In-Reply-To
<e5bfff550906130013j3a9802cen48ac5828a2357bf1@mail.gmail.com>
Marco Costalba, 13.06.2009:
Show 26 quoted lines
> On Sat, Jun 13, 2009 at 00:29, Markus
> Heidelberg<markus.heidelberg@web.de> wrote:
> > Creating a patch series didn't work, because the SHA1 list was
> > interpreted in the wrong order.
> >
> > Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
> > ---
> 
> I think they are generated in apply order as should be.
> 
> As example, from git repo we have the following revisions:
> 
> GIT 1.6.3
> t4029: use sh instead of bash
> t4200: convert sed expression which operates on non-text file to perl
> t4200: remove two unnecessary lines
> 
> Now if I select the 4 revisions and use "Save patch..." I have
> 
> 0001-t4200-remove-two-unnecessary-lines.patch
> 0002-t4200-convert-sed-expression-which-operates-on-non.patch
> 0003-t4029-use-sh-instead-of-bash.patch
> 0004-GIT-1.6.3.patch
> 
> That is correct because if I go to apply the patches I have to apply
> in the reverse cronological order, from the oldest to the newest.

Sorry, I didn't describe the problem proper. The problem was not about the order of the created patches - it's that I can't create multiple patches at all.

If I only select 1 revision and use "Save patch..." I get 0001-xyz.patch, which is correct.

But if I select 2 or more revisions, I don't get any patch file.
For example, with the following DAG:
    A---B---C---D---E

If I select B to D and use "Save patch...", Qgit creates the following command:

    git format-patch -o /home/markus D^..B
but D^..B obviously is empty.
My patch now changes it, so that this command is produced:
    git format-patch -o /home/markus B^..D
which generates 3 patches.

OK, that was the state from yesterday. While testing a bit more, I can notice some really strange behavior:

I managed to get the following shaList in Git::formatPatch(): D, B, C which led to this revision range in the command: C^..D which produced 2 patches.

After several tests it seems as if the revisions C and D are always the first and last of the shaList variable, if they are included in the selection. Selecting only the first and last revision with Ctrl+LeftMouse instead of all including the ones in between with Shift+LeftMouse works.

Hmm, I will look some more into it...
Markus
Previous: Marco CostalbaNext: Markus Heidelberg
Message 3 of 15 in “Fix "Save patch..." on a commit range”
  1. Fix "Save patch..." on a commit rangeMarkus Heidelberg, Jun 12, 2009
  2. Marco CostalbaJun 13, 2009
  3. Markus HeidelbergJun 13, 2009
  4. Markus HeidelbergJun 13, 2009
  5. Marco CostalbaJun 13, 2009
  6. Markus HeidelbergJun 13, 2009
  7. Marco CostalbaJun 13, 2009
  8. Markus HeidelbergJun 15, 2009
  9. Marco CostalbaJun 15, 2009
  10. Marco CostalbaJun 15, 2009
  11. Marco CostalbaJun 15, 2009
  12. Markus HeidelbergJun 15, 2009
  13. Marco CostalbaJun 16, 2009
  14. Markus HeidelbergJun 16, 2009
  15. Markus HeidelbergJun 15, 2009

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.