Changes since v2: * Address the feedback by Ludovic and Sarah. One problem I noticed was that when ‘accept-pre-releases?’ is #t, a tag like “1-2-3-alpha” would turn into “1.2.3.alpha”, but I think the correct version string would be “1.2.3-alpha”. I solved the problem by making the pre-release part a separate regexp group, and then appending the pre-release part after extracting the version from the tag. That way, the “-” in “-alpha” would not be interpreted as a version delimiter. I also added a new test for testing this. One of the tests in tests/channels.scm is failing; I am not sure why. Before the first and second patches were applied, 6 of them were failing for me, so I guess it’s an improvement. However, on IRC, Ludovic said that all of them were passing (prior to apply my patches). It would be great if people could run the tests before and after applying patches, and see if they pass. Xinglu Chen (3): tests: git: Don't read from the users global Git config file. tests: git: Make 'tag' directive non-interactive. import: Add 'generic-git' updater. Makefile.am | 2 + doc/guix.texi | 34 ++++++ guix/git.scm | 41 ++++++++ guix/import/git.scm | 225 +++++++++++++++++++++++++++++++++++++++ guix/tests/git.scm | 6 +- tests/channels.scm | 2 +- tests/git.scm | 28 +++++ tests/import-git.scm | 245 +++++++++++++++++++++++++++++++++++++++++++ 8 files changed, 580 insertions(+), 3 deletions(-) create mode 100644 guix/import/git.scm create mode 100644 tests/import-git.scm base-commit: 33bc3fb2a5f30a6e21f1b8d6d43867d921bd951c -- 2.33.0