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

Some ideas for StGIT

From
PRPavel Roskin <proski@gnu.org>
Date
Aug 3, 2007, 17:50 UTC
Message-ID
<1186163410.26110.55.camel@dv>
Hello!

I was recently disappointed to learn that one of the Linux drivers (bcm43xx_mac80211, to be precise) switched from git to quilt. I asked whether StGIT was considered, a discussion followed, and I think the key points need to be shared with StGIT developers. I'll add some of my ideas to the mix.

The main point in favor of quilt is that it allows to edit the patches with the text editor. One can pop all patches, edit them and push the all back.

I don't suggest that StGIT gives up on the git-based storage, but this mode of operation could be implemented in two ways.

One is to have a command opposite to "export". It would read the files that "export" produces, replacing the existing patches.

Another approach would be to reexamine the patch after "stg refresh -es" and to apply it instead of the original patch. If the patch doesn't apply, the options would be to discard the edits or to re-launch the editor.

Next issue is that it should be possible to create a patch in one operation. StGIT follows quilt too closely here in requiring "new" and "refresh", instead of utilizing the advantage of the workflow that allows immediate editing of the sources without any commands.

Basically, I want one command that:
1) shows user what was changed
2) allows user to name the patch
3) allows user to describe the patch
4) allows user to exclude files from the patch
5) doesn't require another command to put the changes to the patch

I think the most natural approach would be to enhance "stg new". I see "stg new -s" is supposed to show the changes, but it's currently broken. This is run in a clean StGIT repository with no patches:

$ stg new -s foo
Traceback (most recent call last):
  File "/home/proski/bin/stg", line 43, in <module>
    main()
  File "home/proski/lib/python2.5/site-packages/stgit/main.py", line 284, in main
  File "/usr/lib64/python2.5/new.py", line 82, in func
    
  File "home/proski/lib/python2.5/site-packages/stgit/stack.py", line 842, in new_patch
  File "home/proski/lib/python2.5/site-packages/stgit/stack.py", line 89, in edit_file
  File "home/proski/lib/python2.5/site-packages/stgit/stack.py", line 461, in get_patch
  File "home/proski/lib/python2.5/site-packages/stgit/stack.py", line 148, in __init__
  File "/usr/lib64/python2.5/posixpath.py", line 60, in join
    if b.startswith('/'):
AttributeError: 'NoneType' object has no attribute 'startswith'
Another backtrace in "stg new", also run in a clean StGIT repository with no patches:
$ EDITOR=true stg new todo           
Invoking the editor: "true .stgitmsg.txt" ... done
$ stg export -np
Checking for changes in the working directory ... done
Traceback (most recent call last):
  File "/home/proski/bin/stg", line 43, in <module>
    main()
  File "home/proski/lib/python2.5/site-packages/stgit/main.py", line 284, in main
  File "home/proski/lib/python2.5/site-packages/stgit/commands/export.py", line 137, in func
AttributeError: 'NoneType' object has no attribute 'strip'

Finally, it would be great to have TLS support in the mail command. Mercurial has it, and looking at their mail.py, it doesn't seem to be much work.

-- 
Regards,
Pavel Roskin
Next: Andy Parkins
Message 1 of 32 in “Some ideas for StGIT”
  1. Pavel RoskinAug 3, 2007
  2. Andy ParkinsAug 3, 2007
  3. Pavel RoskinAug 4, 2007
  4. Shawn O. PearceAug 4, 2007
  5. Pavel RoskinAug 5, 2007
  6. Jakub NarebskiAug 5, 2007
  7. Shawn O. PearceAug 5, 2007
  8. Junio C HamanoAug 5, 2007
  9. Josef SipekAug 5, 2007
  10. Johannes SchindelinAug 5, 2007
  11. Josef SipekAug 5, 2007
  12. Johannes SchindelinAug 5, 2007
  13. Josef SipekAug 5, 2007
  14. Yann DirsonAug 4, 2007
  15. Catalin MarinasAug 6, 2007
  16. Chris ShoemakerAug 4, 2007
  17. Johannes SchindelinAug 4, 2007
  18. Yann DirsonAug 3, 2007
  19. Catalin MarinasAug 6, 2007
  20. Pavel RoskinAug 6, 2007
  21. Josef SipekAug 6, 2007
  22. Theodore TsoAug 4, 2007
  23. Yann DirsonAug 4, 2007
  24. Josef SipekAug 4, 2007
  25. Pavel RoskinAug 5, 2007
  26. Catalin MarinasAug 6, 2007
  27. Karl HasselströmAug 6, 2007
  28. Pavel RoskinAug 6, 2007
  29. Karl HasselströmAug 6, 2007
  30. Catalin MarinasAug 23, 2007
  31. Karl HasselströmAug 23, 2007
  32. Pavel RoskinAug 6, 2007

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.