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

[PATCH] request-pull: short sha handling, manual update

From
Petr Stodulka <pstodulk@redhat.com>
Date
Jun 2, 2015, 14:14 UTC
Message-ID
<556DBA37.2010402@redhat.com>

request-pull prints incorrectly warn messages about not found commits and man pages don't say anything about todays changed behaviour. People are confused and try look for errors at wrong places. At least these should be fixed/modified.

Warn massage says that commit can't be found ar remote, however there it is in and is missing on local repository in 'many' cases. So I don't know if better solution is check, where commit is truly missing or transform warning message. Something like:

    warn: No match for commit <commit> found at <url> or local repository.
    warn: Are you sure you have synchronized branch with remote repository?

...... man page could be changed like this:

-------------------------------------------------------
diff --git a/Documentation/git-request-pull.txt 
b/Documentation/git-request-pull.txt
index 283577b..6d34fc7 100644
--- a/Documentation/git-request-pull.txt
+++ b/Documentation/git-request-pull.txt
@@ -73,6 +73,17 @@ then you can ask that to be pulled with
         git request-pull v1.0 https://git.ko.xz/project master:for-linus


+NOTES
+-----
+
+Since git version 2.0.0 is behaviour of git request-pull little different.
+It is recommended use of third argument for each request-pull, otherwise
+you can get error message like:
+
+   warn: No match for commit <commit> found at <url>
+   warn: Are you sure you pushed 'HEAD' there?
+
+
  GIT
  ---
  Part of the linkgit:git[1] suite

-------------------------------------------------------

Second patch provides right processing of third parameter when short 
version of sha hash is used (e.g. 897a111). Now is
supported only full hash, what is different behaviour against first 
parameter or what can be found in other functions. Extra
solves one of cases of wrong warn message.

-------------------------------------------------------
diff --git a/git-request-pull.sh b/git-request-pull.sh
index d5500fd..2dc735e 100755
--- a/git-request-pull.sh
+++ b/git-request-pull.sh
@@ -92,9 +92,11 @@ find_matching_ref='
                 chomp;
                 my ($sha1, $ref, $deref) = /^(\S+)\s+([^^]+)(\S*)$/;
                 my ($pattern);
+               my ($pattern2);
                 next unless ($sha1 eq $headrev);

                 $pattern="/$head\$";
+               $pattern2="^$head";
                 if ($ref eq $head) {
                         $found = $ref;
                 }
@@ -104,6 +106,9 @@ find_matching_ref='
                 if ($sha1 eq $head) {
                         $found = $sha1;
                 }
+               elsif ($sha1 =~ /$pattern2/ and (length $head) gt 7) {
+                       $found = $sha1
+               }
         }
         if ($found) {
                 print "$found\n";
-------------------------------------------------------
Next: Petr Stodulka
Message 1 of 2 in “request-pull: short sha handling, manual update”
  1. request-pull: short sha handling, manual updatePetr Stodulka, Jun 2, 2015
  2. Petr StodulkaJun 18, 2015

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.