* Tony Mechelynck <antoine.mechely...@gmail.com> [241121 00:10]: > On Wed, Nov 20, 2024 at 7:48 PM Marvin Renich <m...@renich.org> wrote: > > I have, in the past, used the hggit extension > > (https://hg-git.github.io/), rather than the git extension. It is > > packaged in Debian as mercurial-git. To use it, simply add > > «[extensions] hggit = » to your .hgrc, then use git URLs to clone the > > repo, e.g. «hg clone git+https://github.com/vim/vim.git». Other than > > that, you simply use hg as you normally would. And, it has help. > > > > Note that the instructions on the website say to also add > > hgext.bookmarks= to your .hgrc, but if you read more carefully, it says > > this is only needed for hg versions prior to 1.7, which is _very_ old. > > I didn't add this and it seems to work fine. > > > > I just tried the above clone in a fresh VM. It works fine, but it takes > > a while to clone, as there are more than 20,000 commits. There is a > > progress bar during the download, but when all the commits are > > downloaded, there is a long pause without any feedback while the > > extension converts the git commits to mercurial. > > Since I posted the above, I found that my Linux distro includes an > hggit package ; so I installed it but didn't yet enable it. Strangely > as it may seem, Mercurial regards it as "external" but doesn't need to > be told where it is : > > linux-tuxedo:~/.build/vim/vim-hg # hg --config extensions.hggit= version -v
By default, Mercurial looks for extensions in the Python path. If you hadn't specified --config... it would not have found the extension. You only need to specify paths for extensions that are not in your Python module path, but the extension name must be mentioned in your .hgrc file to be found. > The part I don't understand in the hggit help is the need to download > a separate git clone on my hard drive outside my Mercurial repository > of Vim, even though the latter includes the .gitignore and other files > needed by git but not by Mercurial. (It also includes, of course, the > .hgignore and other files needed by Mercurial but not by git.) I would > have thought that, let's say, after having set the "default" remote > source to the proper git: URL for the Vim server on github, I could > use "hg in" and "hg fetch --switch-parent" on my existing Mercurial > repository as usual and that it would list or pull (respectively) any > new changesets available on github, converting them to proper > Mercurial changesets as it went and committing them as descendants > from the existing ones (downloaded from Christian's Mercurial server > and before that from Bram's), without the need to rebuild the whole > stuff from scratch. It puts the Git clone in the directory .hg/git in your repo. When pulling from a Git repo, it must be able to match Mercurial commits with corresponding Git commits. Because the Git hashes are different from the Mercurial hashes, it does this by comparing the contents of the commits, so it must have all of the Git commits. Once you have pulled from (or cloned) a Git repo, subsequent pulls will only have to download new commits. This is the same as with a remote Mercurial repo, but the code used to download and compare Git commits with the existing Mercurial commits is much slower than either a "git pull" or "hg pull" from a native repo. You will find a file .hg/git-mapfile with a table of hg<->git commit hashes. Also, Git and Mercurial have some different philosophies, especially regarding tags. Mercurial tags are stored as commits, while Git tags are metadata in the .git directory, so the correspondence between commits is not one-to-one. > I have a hint that the authors of the hggit help are interested mostly > in "pushing" to git while I am interested only and exclusively in > "pulling" from git in order to "make" from the source thus downloaded > successively better Vim executables configured to my will and wish. I don't think this is true. I think it is just the initial use of clone or pull that is taking so long that is giving you this impression. > If > I ever feel the need to contribute changes to the source and the > runtime files, I will, like in the past, write them as local mq > patches and send them to the list in "unified git diff" format as > produced by Mercurial even without the hggit extension. > > Best regards, > Tony. ...Marvin -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/vim_dev/Zz9EnfulLT498YMg%40basil.wdw.