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

[PATCH/v3] bundle.c: added --stdin option to git-bundle

From
Adam Brewster <adambrewster@gmail.com>
Date
Jul 5, 2008, 16:30 UTC
Message-ID
<c376da900807050930i6d1da898s624be58adc6f1751@mail.gmail.com>
Signed-off-by: Adam Brewster <asb@bu.edu>
---
It seems that the consensus is that the other half of my original
patch is no good.  You have some pretty good ideas about how to
correctly address the problem I was trying to solve, and I look
forward to seeing them actually implemented.

For now, I offer separately the modification I made to bundle.c to allow git-bundle to handle the --stdin option. There is no accompanying change to the documentation because it already implies that this option is available.

 bundle.c |   22 ++++++++++++++++++++--
 1 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/bundle.c b/bundle.c
index 0ba5df1..b44a4af 100644
--- a/bundle.c
+++ b/bundle.c
@@ -227,8 +227,26 @@ int create_bundle(struct bundle_header *header,
const char *path,

        /* write references */
        argc = setup_revisions(argc, argv, &revs, NULL);
-       if (argc > 1)
-               return error("unrecognized argument: %s'", argv[1]);
+
+       for (i = 1; i < argc; i++) {
+               if ( !strcmp(argv[i], "--stdin") ) {
+                       char line[1000];
+                               while (fgets(line, sizeof(line),
stdin) != NULL) {
+                               int len = strlen(line);
+                               if (len && line[len - 1] == '\n')
+                                       line[--len] = '\0';
+                               if (!len)
+                                       break;
+                               if (line[0] == '-')
+                                       die("options not supported in
--stdin mode");
+                               if (handle_revision_arg(line, &revs, 0, 1))
+                                       die("bad revision '%s'", line);
+                       }
+                       continue;
+               }
+
+               return error("unrecognized argument: %s'", argv[i]);
+       }

        for (i = 0; i < revs.pending.nr; i++) {
                struct object_array_entry *e = revs.pending.objects + i;
--
1.5.5.1.211.g65ea3.dirty
Next: Jakub Narebski
Message 1 of 18 in “bundle.c: added --stdin option to git-bundle”
  1. bundle.c: added --stdin option to git-bundleAdam Brewster, Jul 5, 2008
  2. Jakub NarebskiJul 5, 2008
  3. Junio C HamanoJul 5, 2008
  4. 0/3 Adam Brewster, Jul 5, 2008
  5. Move read_revisions_from_stdin from builtin-rev-list.c to revision.cAdam Brewster, Jul 5, 2008
  6. git-bundle: add --stdinAdam Brewster, Jul 5, 2008
  7. Add git-basis.perl to contrib directoryAdam Brewster, Jul 5, 2008
  8. Miklos VajnaJul 5, 2008
  9. Adam Brewster, Jul 5, 2008
  10. Move read_revisions_from_stdin from builtin-rev-list.c to revision.cAdam Brewster, Jul 5, 2008
  11. git-bundle: add --stdinAdam Brewster, Jul 5, 2008
  12. Junio C HamanoJul 6, 2008
  13. Adam BrewsterJul 6, 2008
  14. git-rev-list: tolerate multiple --stdin optionsAdam Brewster, Jul 6, 2008
  15. Teach git-bundle to read revision arguments from stdin likeAdam Brewster, Jul 6, 2008
  16. Junio C HamanoJul 6, 2008
  17. Adam BrewsterJul 6, 2008
  18. Junio C HamanoJul 6, 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.