##// END OF EJS Templates
rebase: turn rebase revs into set before filtering obsolete...
rebase: turn rebase revs into set before filtering obsolete When the inhibit extension from mutable-history is enabled, it attempts to iterate over the rebaseset to prevent the nodes being rebased from being marked obsolete. This happens at the same time as rebase's _filterobsoleterevs function trying to iterate over the rebaseset to figure out which ones are obsolete. The two of these iterating over the same revset generatorset cause a 'generator already executing' exception. This is probably a flaw in the revset implementation, since iterating over the same set twice should be supported. This regression was introduced in 5d16ebe7b14, since it changed _filterobsoleterevs to be called before the rebaseset was turned into a set(). For now let’s just make the rebaseset an actual set again before calling that function. This was caught by the inhibit tests. The relevant call stack from test-inhibit.t: File "/tmp/hgtests.jgjrN5/install/lib/python/hgext/rebase.py", line 285, in _preparenewrebase obsrevs = _filterobsoleterevs(self.repo, rebaseset) File "/data/hgbuild/facebook-hg-rpms/mutable-history/hgext/inhibit.py", line 197, in _filterobsoleterevswrap r = orig(repo, rebasesetrevs, *args, **kwargs) File "/tmp/hgtests.jgjrN5/install/lib/python/hgext/rebase.py", line 1380, in _filterobsoleterevs return set(r for r in revs if repo[r].obsolete()) File "/tmp/hgtests.jgjrN5/install/lib/python/hgext/rebase.py", line 1380, in <genexpr> return set(r for r in revs if repo[r].obsolete()) File "/tmp/hgtests.jgjrN5/install/lib/python/mercurial/revset.py", line 3079, in _iterordered val2 = next(iter2) File "/tmp/hgtests.jgjrN5/install/lib/python/mercurial/revset.py", line 3417, in gen yield nextrev() File "/tmp/hgtests.jgjrN5/install/lib/python/mercurial/revset.py", line 3424, in _consumegen for item in self._gen: File "/tmp/hgtests.jgjrN5/install/lib/python/mercurial/revset.py", line 71, in iterate cl = repo.changelog File "/tmp/hgtests.jgjrN5/install/lib/python/mercurial/repoview.py", line 319, in changelog revs = filterrevs(unfi, self.filtername) File "/tmp/hgtests.jgjrN5/install/lib/python/mercurial/repoview.py", line 261, in filterrevs repo.filteredrevcache[filtername] = func(repo.unfiltered()) File "/data/hgbuild/facebook-hg-rpms/mutable-history/hgext/directaccess.py", line 65, in _computehidden hidden = repoview.filterrevs(repo, 'visible') File "/tmp/hgtests.jgjrN5/install/lib/python/mercurial/repoview.py", line 261, in filterrevs repo.filteredrevcache[filtername] = func(repo.unfiltered()) File "/tmp/hgtests.jgjrN5/install/lib/python/mercurial/repoview.py", line 175, in computehidden hideable = hideablerevs(repo) File "/tmp/hgtests.jgjrN5/install/lib/python/mercurial/repoview.py", line 33, in hideablerevs return obsolete.getrevs(repo, 'obsolete') File "/tmp/hgtests.jgjrN5/install/lib/python/mercurial/obsolete.py", line 1097, in getrevs repo.obsstore.caches[name] = cachefuncs[name](repo) File "/data/hgbuild/facebook-hg-rpms/mutable-history/hgext/inhibit.py", line 255, in _computeobsoleteset if getrev(n) not in blacklist: File "/tmp/hgtests.jgjrN5/install/lib/python/mercurial/revset.py", line 3264, in __contains__ return x in self._r1 or x in self._r2 File "/tmp/hgtests.jgjrN5/install/lib/python/mercurial/revset.py", line 3348, in __contains__ for l in self._consumegen(): File "/tmp/hgtests.jgjrN5/install/lib/python/mercurial/revset.py", line 3424, in _consumegen for item in self._gen: ValueError: generator already executing

File last commit:

r29162:5a3197cb default
r29610:754f6367 stable
Show More
mercurial.ini
97 lines | 2.3 KiB | text/x-ini | IniLexer
Steve Borho
mercurial.ini: provide more useful info...
r9322 ; System-wide Mercurial config file.
;
; !!! Do Not Edit This File !!!
;
; This file will be replaced by the installer on every upgrade.
; Editing this file can cause strange side effects on Vista.
;
; http://bitbucket.org/tortoisehg/stable/issue/135
;
; To change settings you see in this file, override (or enable) them in
; your user Mercurial.ini file, where USERNAME is your Windows user name:
;
; XP or older - C:\Documents and Settings\USERNAME\Mercurial.ini
; Vista or later - C:\Users\USERNAME\Mercurial.ini
Lee Cantey
Convert default mercurial.ini file to Windows line endings
r4749
Thomas Arendsen Hein
merge with crew-stable
r5142 [ui]
Steve Borho
mercurial.ini: provide more useful info...
r9322 ; editor used to enter commit logs, etc. Most text editors will work.
Lee Cantey
Convert default mercurial.ini file to Windows line endings
r4749 editor = notepad
Pascal Quantin
Update mercurial.ini file packaged in win32 installer...
r7662 ; show changed files and be a bit more verbose if True
; verbose = True
Steve Borho
mercurial.ini: provide more useful info...
r9322
Pascal Quantin
Update mercurial.ini file packaged in win32 installer...
r7662 ; username data to appear in commits
; it usually takes the form: Joe User <joe.user@host.com>
; username = Joe User <j.user@example.com>
Steve Borho
mercurial.ini: provide more useful info...
r9322 ; In order to push/pull over ssh you must specify an ssh tool
;ssh = "C:\Progra~1\TortoiseSVN\bin\TortoisePlink.exe" -ssh -2
;ssh = C:\cygwin\bin\ssh
Lee Cantey
Convert default mercurial.ini file to Windows line endings
r4749
Steve Borho
mercurial.ini: provide more useful info...
r9322 ;
; For more information about mercurial extensions, start here
; http://www.selenic.com/mercurial/wiki/index.cgi/UsingExtensions
;
; Extensions shipped with Mercurial
;
Lee Cantey
Convert default mercurial.ini file to Windows line endings
r4749 [extensions]
Steve Borho
mercurial.ini: provide more useful info...
r9322 ;acl =
Pascal Quantin
win32: update Inno Setup installer script and extensions list
r19512 ;blackbox =
Steve Borho
mercurial.ini: provide more useful info...
r9322 ;bugzilla =
;children =
;churn =
;color =
;convert =
Martin Geisler
win32text: mark this extension as deprecated
r11269 ;eol =
Steve Borho
mercurial.ini: provide more useful info...
r9322 ;extdiff =
;fetch =
;gpg =
;hgk =
;highlight =
Pascal Quantin
win32: update Inno Setup installer extensions list
r17278 ;histedit =
Steve Borho
mercurial.ini: provide more useful info...
r9322 ;interhg =
Pascal Quantin
win32: update Inno Setup installer extensions list
r17278 ;largefiles =
Steve Borho
mercurial.ini: provide more useful info...
r9322 ;keyword =
;mq =
;notify =
;pager =
;patchbomb =
Pascal Quantin
Add progress extension to win32 default config file
r10474 ;progress =
Steve Borho
mercurial.ini: provide more useful info...
r9322 ;purge =
;rebase =
;record =
Pascal Quantin
win32: update Inno Setup installer extensions list
r17278 ;relink =
;schemes =
;share =
Pascal Quantin
win32: add shelve extension to mercurial.ini
r19946 ;shelve =
Steve Borho
mercurial.ini: provide more useful info...
r9322 ;transplant =
;win32mbcs =
;zeroconf =
Lee Cantey
Convert default mercurial.ini file to Windows line endings
r4749
Steve Borho
mercurial.ini: provide more useful info...
r9322 ;
; Define external diff commands
;
[extdiff]
;cmd.bc3diff = C:\Program Files\Beyond Compare 3\BCompare.exe
;cmd.vdiff = C:\Progra~1\TortoiseSVN\bin\TortoiseMerge.exe
;cmd.vimdiff = gvim.exe
Thomas Arendsen Hein
extdiff: escape filenames with vim/DirDiff and make quoting work with Windows...
r16242 ;opts.vimdiff = -f "+next" "+execute 'DirDiff' fnameescape(argv(0)) fnameescape(argv(1))"
Steve Borho
mercurial.ini: provide more useful info...
r9322
Pascal Quantin
Package hgk Tcl/Tk script in win32 installer...
r7663 [hgk]
; Replace the following with your path to hgk, uncomment it and
Steve Borho
mercurial.ini: provide more useful info...
r9322 ; install ActiveTcl (or another win32 port like tclkit)
Pascal Quantin
Package hgk Tcl/Tk script in win32 installer...
r7663 ; path="C:\Program Files\Mercurial\Contrib\hgk.tcl"
Steve Borho
mercurial.ini: provide more useful info...
r9322 ; vdiff=vdiff
Lee Cantey
Convert default mercurial.ini file to Windows line endings
r4749
Steve Borho
mercurial.ini: provide more useful info...
r9322 ;
; The git extended diff format can represent binary files, file
; permission changes, and rename information that the normal patch format
; cannot describe. However it is also not compatible with tools which
; expect normal patches. so enable git patches at your own risk.
;
[diff]
;git = false
;nodates = false
Pascal Quantin
Update mercurial.ini file packaged in win32 installer...
r7662