Subject: Re: bug#51817: Git unable to find reference "refs/remotes/origin/HEAD"
From: Maxim Cournoyer <[email-masked]>
To: Bastien Rivière <[email-masked]>
Cc: [email-masked]
Date: Sat, 26 Mar 2022 01:06:49 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

Bastien Rivière <[email-masked]> writes:

> Hello, I have found an interesting bug with guix.
>
> When I try to import ~yasnippet~ from melpa, the command is unable to
> find the 'refs/remotes/origin/HEAD'.
>
> How to reproduce:
>
> #+begin_src shell :results output :epilogue ":"
> guix import elpa -a melpa yasnippet 2>&1
> #+end_src
>
>
> #+RESULTS:
>
> #+begin_example
> Backtrace:
>           13 (primitive-load "/home/babariviere/.config/guix/current…")
> In guix/ui.scm:
>    2206:7 12 (run-guix . _)
>   2169:10 11 (run-guix-command _ . _)
> In guix/scripts/import.scm:
>    124:11 10 (guix-import . _)
> In guix/scripts/import/elpa.scm:
>    104:23  9 (guix-import-elpa . _)
> In guix/import/elpa.scm:
>     209:2  8 (elpa->guix-package _ #:repo _ #:version _)
> In ice-9/boot-9.scm:
>   1752:10  7 (with-exception-handler _ _ #:unwind? _ # _)
> In guix/store.scm:
>    658:37  6 (thunk)
> In guix/git.scm:
>     543:8  5 (latest-repository-commit #<store-connection 256.99 7f…> …)
>     272:4  4 (update-cached-checkout _ #:ref _ #:recursive? _ # _ # _ …)
>    225:18  3 (resolve _)
> In git/reference.scm:
>      60:8  2 (_ _ _)
> In git/bindings.scm:
>      77:2  1 (raise-git-error _)
> In ice-9/boot-9.scm:
>   1685:16  0 (raise-exception _ #:continuable? _)
>
> ice-9/boot-9.scm:1685:16: In procedure raise-exception:
> Git error: reference 'refs/remotes/origin/HEAD' not found
> #+end_example
>
>
>
> Guix describe output:
>
> #+begin_src shell :results output
> guix describe
> #+end_src
>
>
> #+RESULTS:
>
> #+begin_example
> Generation 40 Nov 13 2021 23:03:01 (current)
>   guix e9e1627
>     repository URL: https://git.savannah.gnu.org/git/guix.git
>     branch: master
>     commit: e9e162784985611a0700cf7d0f16096762467a70
>   baba 081d02b
>     repository URL: https://github.com/babariviere/dotfiles
>     branch: guix
>     commit: 081d02b371f00b186009fde1033ee0ee6dc7177f
>   rde f9290e5
>     repository URL: https://git.sr.ht/~abcdw/rde
>     branch: master
>     commit: f9290e5f23a8739f3cfe8afc92df0b07eb081da0
>   flat 2ef1303
>     repository URL: https://github.com/flatwhatson/guix-channel.git
>     branch: master
>     commit: 2ef1303a1e8aceab9c9e8ec6d1bd0f6b09e154e4
>   nonguix 2a44c2c
>     repository URL: https://gitlab.com/nonguix/nonguix
>     branch: master
>     commit: 2a44c2c599f4b4d59ef5d7aa4520bc378d8f10fe
>   emacs 051a950
>     repository URL: https://github.com/babariviere/guix-emacs
>     branch: master
>     commit: 051a950f3fc51449acf991120fa492fae6ea12f2
> #+end_example

I cannot reproduce this as of guix
6385881124429016f750b0f562b70e07f592275e.

--8<---------------cut here---------------start------------->8---
$ guix import elpa -a melpa yasnippet
(package
  (name "emacs-yasnippet")
  (version "20200604.246")
  (source
    (origin
      (method git-fetch)
      (uri (git-reference
             (url "https://github.com/joaotavora/yasnippet.git")
             (commit "5cbdbf0d2015540c59ed8ee0fcf4788effdf75b6")))
      (sha256
        (base32 "1cp1sgmfc8pgcy24l77aam833710mjp2y3m8l8c90677wxqr44vl"))))
  (build-system emacs-build-system)
  (arguments '(#:include '("^yasnippet.el$" "^snippets$") #:exclude '()))
  (home-page "http://github.com/joaotavora/yasnippet")
  (synopsis "Yet another snippet extension for Emacs")
  (description
    "   Basic steps to setup:

   (add-to-list 'load-path                 \"~/path-to-yasnippet\")    (require
'yasnippet)    (yas-global-mode 1)

  Interesting variables are:

      `yas-snippet-dirs'

          The directory where user-created snippets are to be           stored.
Can also be a list of directories.  In that case,           when used for bulk
(re)loading of snippets (at startup or           via `yas-reload-all'),
directories appearing earlier in           the list override other dir's
snippets.  Also, the first           directory is taken as the default for
storing the user's           new snippets.

          The deprecated `yas/root-directory' aliases this variable
for backward-compatibility.

  Major commands are:

      M-x yas-expand

          Try to expand snippets before point.  In `yas-minor-mode',
this is normally bound to TAB, but you can customize it in
`yas-minor-mode-map'.

      M-x yas-load-directory

          Prompts you for a directory hierarchy of snippets to load.

      M-x yas-activate-extra-mode

          Prompts you for an extra mode to add snippets for in the
current buffer.

      M-x yas-insert-snippet

          Prompts you for possible snippet expansion if that is
possible according to buffer-local and snippet-local           expansion
conditions.  With prefix argument, ignore these           conditions.

      M-x yas-visit-snippet-file

          Prompts you for possible snippet expansions like
`yas-insert-snippet', but instead of expanding it, takes           you directly
to the snippet definition's file, if it           exists.

      M-x yas-new-snippet

          Lets you create a new snippet file in the correct
subdirectory of `yas-snippet-dirs', according to the           active major
mode.

      M-x yas-load-snippet-buffer

          When editing a snippet, this loads the snippet.  This is
bound to \"C-c C-c\" while in the `snippet-mode' editing           mode.

      M-x yas-tryout-snippet

          When editing a snippet, this opens a new empty buffer,           sets
it to the appropriate major mode and inserts the           snippet there, so you
can see what it looks like.  This is           bound to \"C-c C-t\" while in
`snippet-mode'.

      M-x yas-describe-tables

          Lists known snippets in a separate buffer.  User is           prompted
as to whether only the currently active tables           are to be displayed, or
all the tables for all major           modes.

  If you have `dropdown-list' installed, you can optionally use it   as the
preferred \"prompting method\", putting in your .emacs file,   for example:

      (require 'dropdown-list)       (setq yas-prompt-functions
'(yas-dropdown-prompt                                    yas-ido-prompt
                          yas-completing-prompt))

  Also check out the customization group

       M-x customize-group RET yasnippet RET

  If you use the customization group to set variables   `yas-snippet-dirs' or
`yas-global-mode', make sure the path to   \"yasnippet.el\" is present in the
`load-path' *before* the   `custom-set-variables' is executed in your .emacs
file.

  For more information and detailed usage, refer to the project page:
http://github.com/joaotavora/yasnippet")
  (license #f))
--8<---------------cut here---------------end--------------->8---

Closing!

Thanks for the report,

Maxim