I've started trying to learn Mercurial as used with Vim, but the learning curve is steep, not the least because AFAICT the only docs consist in three very long manpages, plus the "hg help" function which only displays a few lines at a time (let's say between 10 and 60) and you cannot know what an "extension" exactly does before you enable it: hg help <command> gives an error if <command> is disabled, which is by default the case of most extensions; the list of extensions under "hg help extensions" (there is none in the manual) consists of only one line per extension. -- Ah la la, I've been too cuddled by the Vim help, I've lost the habit of puzzling out an answer through extremely long manpages and extremely short help screens, where help screens and manpages each contain info not available in the other set...

For managing several Vim builds in parallel (let's say huge and tiny, which is what I have, or maybe with and without GUI enabled) by means of shadow directories, I've added a few lines to .hgignore (see attached patch -- also for cscope). Bram, what do you think?

However, it seems that cscope does not follow symlinks, so it cannot be used in a shadow directory.

When building exclusively from "official" sources, Mercurial is (all in all) rather easy to use (once "hg clone https://vim.googlecode.com/hg/ vim" to create the repository, which includes a reasonable .hgignore for compiling one build only from vanilla sources, and any number of times "hg pull -u" as updates are published). However, I have a few "home patches", one of which adds an "Extra patch" near the end of version.c -- with the patches distributed by ftp this was no problem, as this change is after the added patches: patch doesn't even notice it. But with Mercurial as distributed it meant hg pull, hg merge, hg commit (3 separate Mercurial functions) for each patch (or set of patches) pulled, because Mercurial notices that version.c has been modified by Bram and needs to be merged -- every time -- with the change I made. Finally I found that the hgext.fetch extension (distributed with Mercurial but disabled by default) seems to do what I need, and I also found the way to enable it (by means of .hg/hgrc), but I couldn't yet try it out -- I found it after patch 7.2.422 was distributed and then Bram stopped for today ;-). -- BTW there is some doubletalk in the hg manpages and help about the difference between the first and second parent of the commit that follows a merge (or the merge done by a fetch) but I haven't yet grasped what it means. Oh, and I also haven't found how to remove the nonsense label after the last @@ in a hunk of an hg diff, my hgrc (attached) doesn't cut it (it was used to produce the attached diff).

Once I have the process steamrolled I'll update my HowTo page about building Vim on Unix/Linux (or maybe add a third page or write a VimTip) but I'm not there yet.


Best regards,
Tony.
--
Every little picofarad has a nanohenry all its own.
                -- Don Vonada

--
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
[paths]
default = https://vim.googlecode.com/hg/

[extensions]
hgext.fetch = 

[diff]
git = False
showfunc = False

[ui]
verbose = True
diff -r d297871cd49c .hgignore
--- a/.hgignore	Thu May 13 17:57:06 2010 +0200
+++ b/.hgignore	Thu May 13 21:41:48 2010 +0200
@@ -39,3 +39,15 @@ gvimext.lib
 *.orig
 *.mo
 *~
+
+# shadow directories
+# the directory names could be anything but we restrict them
+# to shadow (the default) or shadow-*
+src/shadow
+src/shadow-*
+# src/runtime and src/pixmaps are softlinks needed for proper 'make install'
+# when in a shadow directory
+src/runtime
+src/pixmaps
+# avoid tracking cscope.out even if built here
+src/cscope.out

Raspunde prin e-mail lui