Commits

ZyX_I committed d28c1db Merge

Merge

Comments (0)

Files changed (146)

 9de855630429bd49dbc3cc2a55538be5e48200ca release-1.2.2
 54238c7fc6f69fde14ea7955c71b760e6ca9bac2 release-1.3
 bdc3f787b35cd00f6e41439c3f3768664ddb7329 release-1.4
+db7ee1703f9e96811743972ec98f4b8a1e323545 release-1.4.1
 
-This plugin provides a vim <--> VCS (currently mercurial, git and subversion) 
-integration for your projects. Features:
+This plugin provides a vim <--> VCS (currently mercurial and git) integration 
+for your projects. Features:
 
-  - Partially committing changes ([:AuRecord](http://vimpluginloader.sourceforge.net/doc/aurum.txt.html#line357-0)).
+  - Partially committing changes ([:AuRecord](http://vimpluginloader.sourceforge.net/doc/aurum.txt.html#line356-0)).
 
-  - Viewing file state at particular revision ([aurum://file](http://vimpluginloader.sourceforge.net/doc/aurum.txt.html#line596-0), [:AuFile](http://vimpluginloader.sourceforge.net/doc/aurum.txt.html#line158-0)).
+  - Viewing file state at particular revision ([aurum://file](http://vimpluginloader.sourceforge.net/doc/aurum.txt.html#line598-0), [:AuFile](http://vimpluginloader.sourceforge.net/doc/aurum.txt.html#line157-0)).
 
   - Viewing uncommited changes in a vimdiff, as well as changes between 
-    specific revisions ([:AuVimDiff](http://vimpluginloader.sourceforge.net/doc/aurum.txt.html#line397-0)). It is also possible to open multiple 
+    specific revisions ([:AuVimDiff](http://vimpluginloader.sourceforge.net/doc/aurum.txt.html#line399-0)). It is also possible to open multiple 
     tabs with all changes to all files viewed as side-by-side diffs.
 
-  - Viewing revisions log ([:AuLog](http://vimpluginloader.sourceforge.net/doc/aurum.txt.html#line239-0)). Output is highly customizable.
+  - Viewing revisions log ([:AuLog](http://vimpluginloader.sourceforge.net/doc/aurum.txt.html#line238-0)). Output is highly customizable.
 
-  - Viewing working directory status ([:AuStatus](http://vimpluginloader.sourceforge.net/doc/aurum.txt.html#line361-0)).
+  - Viewing working directory status ([:AuStatus](http://vimpluginloader.sourceforge.net/doc/aurum.txt.html#line360-0)).
 
-  - Commiting changes ([:AuCommit](http://vimpluginloader.sourceforge.net/doc/aurum.txt.html#line99-0)), commit messages are remembered in case of 
-    rollback ([g:aurum_remembermsg](http://vimpluginloader.sourceforge.net/doc/aurum.txt.html#line867-0)).
+  - Commiting changes ([:AuCommit](http://vimpluginloader.sourceforge.net/doc/aurum.txt.html#line98-0)), commit messages are remembered in case of 
+    rollback ([g:aurum_remembermsg](http://vimpluginloader.sourceforge.net/doc/aurum.txt.html#line869-0)).
 
   - Obtaining various URL’s out of remote repository URL (like URL of the HTML 
     version of the current file with URL fragment pointing to the current line 
-    attached: useful for sharing) ([:AuHyperlink](http://vimpluginloader.sourceforge.net/doc/aurum.txt.html#line189-0)).
+    attached: useful for sharing) ([:AuHyperlink](http://vimpluginloader.sourceforge.net/doc/aurum.txt.html#line188-0)).
 
-  - [aurum#changeset()](http://vimpluginloader.sourceforge.net/doc/aurum.txt.html#line445-0), [aurum#repository()](http://vimpluginloader.sourceforge.net/doc/aurum.txt.html#line441-0) and [aurum#status()](http://vimpluginloader.sourceforge.net/doc/aurum.txt.html#line449-0) functions 
+  - [aurum#changeset()](http://vimpluginloader.sourceforge.net/doc/aurum.txt.html#line447-0), [aurum#repository()](http://vimpluginloader.sourceforge.net/doc/aurum.txt.html#line443-0) and [aurum#status()](http://vimpluginloader.sourceforge.net/doc/aurum.txt.html#line451-0) functions 
     that are to be used from modeline.
 
   - Frontends for various other VCS commands.
 
-Most commands can be reached with a set of mappings (see [aurum-mappings](http://vimpluginloader.sourceforge.net/doc/aurum.txt.html#line751-0)), 
+Most commands can be reached with a set of mappings (see [aurum-mappings](http://vimpluginloader.sourceforge.net/doc/aurum.txt.html#line753-0)), 
 all mappings are customizable.
 
 

aurum-addon-info.txt

 {
     "name": "aurum",
-    "version": "1.4",
+    "version": "1.4.1",
     "author": "ZyX <kp-pav@yandex.ru>",
     "maintainer": "ZyX <kp-pav@yandex.ru>",
     "description": "Plugin for dealing with source files under various VCS control",
         "plugin/aurum/drivers/common/utils.vim",
         "plugin/aurum/drivers/git.vim",
         "plugin/aurum/drivers/mercurial.vim",
-        "plugin/aurum/drivers/subversion.vim",
         "plugin/aurum/edit.vim",
         "plugin/aurum/file.vim",
         "plugin/aurum/log.vim",
         "syntax/aurumlog.vim",
         "syntax/aurumstatus.vim",
         "test/addmessages.vim",
-        "test/annotate-buffers.in",
-        "test/annotate-buffers.ok",
-        "test/annotate.in",
-        "test/annotate.ok",
-        "test/annotatemaps.in",
-        "test/annotatemaps.ok",
-        "test/audiffmaps.in",
-        "test/audiffmaps.ok",
-        "test/aufilemaps.in",
-        "test/aufilemaps.ok",
-        "test/branch.in",
-        "test/branch.ok",
-        "test/commit.in",
-        "test/commit.ok",
+        "test/cmd+maps-commit.in",
+        "test/cmd+maps-commit.ok",
+        "test/cmd-annotate-buffers.in",
+        "test/cmd-annotate-buffers.ok",
+        "test/cmd-annotate.in",
+        "test/cmd-annotate.ok",
+        "test/cmd-branch.in",
+        "test/cmd-branch.ok",
+        "test/cmd-diff.in",
+        "test/cmd-diff.ok",
+        "test/cmd-file.in",
+        "test/cmd-file.ok",
+        "test/cmd-grep.in",
+        "test/cmd-grep.ok",
+        "test/cmd-junk.in",
+        "test/cmd-junk.ok",
+        "test/cmd-log-styles.in",
+        "test/cmd-log-styles.ok",
+        "test/cmd-log-templates.in",
+        "test/cmd-log-templates.ok",
+        "test/cmd-log.in",
+        "test/cmd-log.ok",
+        "test/cmd-move.in",
+        "test/cmd-move.ok",
+        "test/cmd-name.in",
+        "test/cmd-name.ok",
+        "test/cmd-record.in",
+        "test/cmd-record.ok",
+        "test/cmd-status.in",
+        "test/cmd-status.ok",
+        "test/cmd-track.in",
+        "test/cmd-track.ok",
+        "test/cmd-update.in",
+        "test/cmd-update.ok",
+        "test/cmd-vimdiff-full.in",
+        "test/cmd-vimdiff-full.ok",
+        "test/cmd-vimdiff.in",
+        "test/cmd-vimdiff.ok",
+        "test/cmdaus.in",
+        "test/cmdaus.ok",
         "test/copyout-postproc.zsh",
         "test/creategitrepo.zsh",
         "test/createhgrepo.zsh",
-        "test/createsvnrepo.zsh",
-        "test/diff.in",
-        "test/diff.ok",
-        "test/file.in",
-        "test/file.ok",
+        "test/drivers-git.in",
+        "test/drivers-git.ok",
         "test/gentests-expand-tmpdir.zsh",
         "test/gentests-setuprtp.zsh",
         "test/gentests-setuptestrepos.zsh",
         "test/gentests-unnormdates.zsh",
-        "test/git.in",
-        "test/git.ok",
         "test/gittestrepo.tar.xz",
         "test/gitteststatusrepo.tar.xz",
         "test/globtopattern.in",
         "test/globtopattern.vim",
-        "test/grep.in",
-        "test/grep.ok",
         "test/gwine",
-        "test/junk.in",
-        "test/junk.ok",
-        "test/log-styles.in",
-        "test/log-styles.ok",
-        "test/log-templates.in",
-        "test/log-templates.ok",
-        "test/log.in",
-        "test/log.ok",
-        "test/logmaps.in",
-        "test/logmaps.ok",
-        "test/move.in",
-        "test/move.ok",
-        "test/name.in",
-        "test/name.ok",
+        "test/maps-annotate.in",
+        "test/maps-annotate.ok",
+        "test/maps-diff.in",
+        "test/maps-diff.ok",
+        "test/maps-file.in",
+        "test/maps-file.ok",
+        "test/maps-log.in",
+        "test/maps-log.ok",
+        "test/maps-status.in",
+        "test/maps-status.ok",
+        "test/opts-remembermsg.in",
+        "test/opts-remembermsg.ok",
+        "test/opts-usewin.in",
+        "test/opts-usewin.ok",
         "test/parjobssetup.zsh",
-        "test/prevmessage.in",
-        "test/prevmessage.ok",
-        "test/record.in",
-        "test/record.ok",
         "test/runtime.tar.xz",
-        "test/stat.in",
-        "test/stat.ok",
-        "test/statmaps.in",
-        "test/statmaps.ok",
-        "test/svntestreposerver.tar.xz",
         "test/testrepo.tar.xz",
-        "test/track.in",
-        "test/track.ok",
-        "test/update.in",
-        "test/update.ok",
-        "test/vimdiff-full.in",
-        "test/vimdiff-full.ok",
-        "test/vimdiff-usewin.in",
-        "test/vimdiff-usewin.ok",
-        "test/vimdiff.in",
-        "test/vimdiff.ok",
         "test/vimrc",
-        "test/wine/annotate-buffers.ok",
-        "test/wine/annotate.ok",
-        "test/wine/annotatemaps.ok",
-        "test/wine/audiffmaps.ok",
-        "test/wine/aufilemaps.ok",
-        "test/wine/branch.ok",
-        "test/wine/diff.ok",
-        "test/wine/file.ok",
-        "test/wine/grep.ok",
-        "test/wine/logmaps.ok",
-        "test/wine/record.ok",
-        "test/wine/statmaps.ok",
-        "test/wine/vimdiff-full.ok",
-        "test/wine/vimdiff-usewin.ok",
-        "test/wine/vimdiff.ok"
+        "test/wine/cmd-annotate-buffers.ok",
+        "test/wine/cmd-annotate.ok",
+        "test/wine/cmd-branch.ok",
+        "test/wine/cmd-diff.ok",
+        "test/wine/cmd-file.ok",
+        "test/wine/cmd-grep.ok",
+        "test/wine/cmd-record.ok",
+        "test/wine/cmd-vimdiff.ok",
+        "test/wine/maps-annotate.ok",
+        "test/wine/maps-diff.ok",
+        "test/wine/maps-file.ok",
+        "test/wine/maps-log.ok",
+        "test/wine/maps-status.ok",
+        "test/wine/opts-usewin.ok",
+        "test/wine/vimdiff-full.ok"
     ],
 }
     Option  Description ~
     files   Glob. If given, only status of files that match given glob will be 
             displayed. May be specified more then once.
-    rev1    Revision. If given :AuStatus will display status not relative to 
-            working revision, but to the given one. If “rev2” is specified, 
-            then it will display status as if {rev2} was working directory 
+    rev     Revision. If given :AuStatus will display status not relative to 
+            working revision, but to the given one. If “wdrev” is specified, 
+            then it will display status as if {wdrev} was working directory 
             state and current working directory was revision from repository.
-    rev2    Revision. If given :AuStatus will display status as if {rev2} was 
+    wdrev   Revision. If given :AuStatus will display status as if {wdrev} was 
             working directory state.
+    changes Revision. Works like specifying {changes} as “rev” option and its 
+            first parent as “wdrev” option. Overrides “rev” and “wdrev” 
+            options.
     show    Either one of modified/added/removed/deleted/unknown/ignored/clean 
             or string containing capitalized first letters of mentined status 
             names (additionally “?” for unknown and “!” for deleted). May be 
     2.2: Added |aurum-repo.initprops|.
     2.3: Added |aurum-rf-getroot| support.
 @aurum:
-    0.1: Added :AuBranch and :AuName
+    0.1: Added :AuBranch and :AuName.
 @aurum/edit:
-    1.0: Removed setlines function (moved it to @aurum/repo)
-    1.1: Added “requiresbvar” _f.newcommand option
+    1.0: Removed setlines function (moved it to @aurum/repo).
+    1.1: Added “requiresbvar” _f.newcommand option.
 @aurum/vimdiff:
     0.1: Added full, untracked, onlymodified and files options to |:AuVimDiff|
-    0.2: Added _r.vimdiff.full
+    0.2: Added _r.vimdiff.full.
 @aurum/log:
     0.1: Added |aurum-style-git| and |aurum-style-gitoneline| log styles, 
          added skipping of $rev if |aurum-repo.hasrevisions| is false, made it 
-         separate graph from content using non-breaking spaces
-    0.2: Added |:AuLog| procinput option
+         separate graph from content using non-breaking spaces.
+    0.2: Added |:AuLog| procinput option.
+@aurum/status:
+    1.0: Renamed |:AuStatus| “rev1” and “rev2” options to “rev” and “wdrev” 
+         respectively. Same for |aurum://status| “rev1” and “rev2” options.
 
 vim: ft=help:tw=78
                 \                      '@/os': '0.1',
                 \           '@aurum/cmdutils': '0.0',
                 \                     '@/fwc': '0.2',
-                \           '@aurum/annotate': '0.0',
-                \             '@aurum/status': '0.0',
-                \                '@aurum/log': '0.0',
-                \             '@aurum/commit': '0.0',
                 \               '@aurum/repo': '2.0',
                 \               '@aurum/edit': '1.0',
-                \            '@aurum/bufvars': '0.0',
-                \            '@aurum/vimdiff': '0.0',}, 0)
+                \            '@aurum/bufvars': '0.0',}, 0)
     "▶2 Команды
     call FraworLoad('@/commands')
     call FraworLoad('@/functions')

plugin/aurum/commit.vim

 if !exists('s:_pluginloaded')
     execute frawor#Setup('0.0', {'@/resources': '0.0',
                 \                  '@/options': '0.0',
-                \              '@aurum/status': '0.0',
+                \              '@aurum/status': '1.0',
                 \            '@aurum/cmdutils': '0.0',
                 \             '@aurum/bufvars': '0.0',
                 \                '@aurum/repo': '2.0',

plugin/aurum/status.vim

 "▶1 
 scriptencoding utf-8
 if !exists('s:_pluginloaded')
-    execute frawor#Setup('0.0', {'@/resources': '0.0',
+    execute frawor#Setup('1.1', {'@/resources': '0.0',
                 \            '@aurum/cmdutils': '0.0',
                 \                      '@/fwc': '0.2',
                 \                '@aurum/repo': '2.0',
 "▶1 setup
 function s:F.setup(read, repo, opts)
     let opts=a:opts
-    for key in filter(['rev1', 'rev2'], 'has_key(opts, v:val)')
+    for key in filter(['rev', 'wdrev'], 'has_key(opts, v:val)')
         let opts[key]=a:repo.functions.getrevhex(a:repo, opts[key])
     endfor
     let bvar={}
-    let status=a:repo.functions.status(a:repo, get(opts, 'rev1', 0),
-                \                              get(opts, 'rev2', 0))
+    let status=a:repo.functions.status(a:repo, get(opts, 'rev',   0),
+                \                              get(opts, 'wdrev', 0))
     let bvar.status=status
     let bvar.types=[]
     let bvar.chars=[]
         let repo=s:_r.repo.get(a:repopath)
     endif
     call s:_r.cmdutils.checkrepo(repo)
-    let opts=[]
-    if has_key(a:opts, 'files')
-        call map(a:opts.files, 'repo.functions.reltorepo(repo, v:val)')
+    let opts=copy(a:opts)
+    if has_key(opts, 'changes')
+        let cs=repo.functions.getcs(repo, opts.changes)
+        let opts.rev=cs.hex
+        if empty(cs.parents)
+            return
+        endif
+        let opts.wdrev=cs.parents[0]
     endif
-    if has_key(a:opts, 'cmd')
-        call s:_r.run(a:opts.cmd, 'status', repo, a:opts)
+    if has_key(opts, 'files')
+        call map(opts.files, 'repo.functions.reltorepo(repo, v:val)')
+    endif
+    if has_key(opts, 'cmd')
+        call s:_r.run(opts.cmd, 'status', repo, opts)
     elseif s:_f.getoption('usestatwin') &&
                 \!empty(filter(tabpagebuflist(),
                 \              'bufname(v:val)=~#''\v^aurum:(.)\1status'''))
-        let statf=s:_r.fname('status', repo, a:opts)
+        let statf=s:_r.fname('status', repo, opts)
         if bufexists(statf) && bufwinnr(statf)!=-1
             execute bufwinnr(statf).'wincmd w'
             silent edit
         else
-            call s:_r.run(s:defcmd, 'status', repo, a:opts)
+            call s:_r.run(s:defcmd, 'status', repo, opts)
         endif
     else
-        call s:_r.run(s:defcmd, 'status', repo, a:opts)
+        call s:_r.run(s:defcmd, 'status', repo, opts)
     endif
-    if !has_key(a:opts, 'cmd')
+    if !has_key(opts, 'cmd')
         let lnum=line('$')
         if winnr('$')>1 && ((winheight(0)>lnum) ||
                     \       (winheight(0)!=lnum && lnum<(&lines/3)))
 let s:statfunc['@FWC']=['-onlystrings '.
             \           '['.s:_r.cmdutils.nogetrepoarg.']'.
             \           '{ *?files     (type "")'.
-            \           '   ?rev1      (type "")'.
-            \           '   ?rev2      (type "")'.
+            \           '   ?rev       (type "")'.
+            \           '   ?wdrev     (type "")'.
+            \           '   ?changes   (type "")'.
             \           '  *?show      (either (in [modified added removed '.
             \                                      'deleted unknown ignored '.
             \                                      'clean all] ~start, '.
             \           '}', 'filter']
 call add(s:statcomp,
             \substitute(substitute(substitute(substitute(s:statfunc['@FWC'][0],
-            \'\V|*_r.repo.get',             '',                    ''),
-            \'\vfiles\s+\([^)]*\)',       'files path',            ''),
-            \'\Vcmd\s\+(type "")',        'cmd '.  s:_r.comp.cmd,  ''),
-            \'\vrev([12])\s+\V(type "")', 'rev\1 '.s:_r.comp.rev,  'g'))
+            \'\V|*_r.repo.get',                     '',                   ''),
+            \'\vfiles\s+\([^)]*\)',                 'files path',         ''),
+            \'\Vcmd\s\+(type "")',                  'cmd '.s:_r.comp.cmd, ''),
+            \'\v(%(wd)?rev|changes)\s+\V(type "")', '\1 '.s:_r.comp.rev,  'g'))
 "▶1 aurum://status
 call s:_f.newcommand({
             \'function': s:F.setup,
             \ 'options': {'list': ['files', 'show'],
             \             'bool': ['record'],
-            \              'str': ['rev1', 'rev2'],
+            \              'str': ['rev', 'wdrev'],
             \             'pats': ['files'],},
             \'filetype': 'aurumstatus',
             \})

test/annotate-buffers.in

-:W{{{1 file
-:R silent edit chgrepo.zsh
-:AuAnnotate
-:WW
-:bwipeout!
-:
-:W{{{1 aurum://file
-:silent edit aurum://file:testrepo:10:chgrepo.zsh
-:AuAnnotate
-:WW
-:bwipeout!
-:
-:W{{{1 aurum://copy
-:silent edit aurum://copy:testrepo/chgrepo.zsh
-:AuAnnotate
-:WW
-:bwipeout!
-:
-:W{{{1 aurum://status
-:R AuStatus show clean
-:AuAnnotate
-:WW
-:bwipeout!
-:
-:bwipeout!
-:bwipeout!
-:W{{{1 aurum://diff
-:silent edit aurum://diff:testrepo::2:crepo.zsh
-:AuAnnotate
-:WW
-:bwipeout!
-:
-:bwipeout!
-:bwipeout!
-:W{{{1 aurum://commit
-:silent edit aurum://commit:annotate-buffersrepo::::nohglinesrev.lst
-:AuAnnotate
-:WW
-:bwipeout!
-:
-:bwipeout!
-:bwipeout!
-:W{{{1 aurum://annotate 1
-:silent edit aurum://annotate:testrepo:2:crepo.zsh
-:0/\v^\s*0
-:AuAnnotate
-:WW
-:bwipeout!
-:
-:bwipeout!
-:W{{{1 aurum://annotate 2
-:silent edit aurum://annotate:testrepo:2:crepo.zsh
-:0/\v^\s*2
-:AuAnnotate
-:WW
-:bwipeout!
-:
-:bwipeout!
-:source addmessages.vim

test/annotate-buffers.ok

-{{{1 file
-#1: aurum://annotate:%ETMPDIR%%-test%-annotate-buffersrepo:504f74154456dbb0e9441326514e42ce66279e62:chgrepo.zsh
-*2: %TMPDIR%/test/annotate-buffersrepo/chgrepo.zsh
-{{{1 aurum://file
-#1: aurum://annotate:%ETMPDIR%%-test%-testrepo:c4110a066208167dae46b08f4e0d8d2b37e842f3:chgrepo.zsh
-*2: aurum://file:testrepo:10:chgrepo.zsh
-{{{1 aurum://copy
-#1: aurum://annotate:%ETMPDIR%%-test%-testrepo:504f74154456dbb0e9441326514e42ce66279e62:chgrepo.zsh
-*2: aurum://copy:testrepo/chgrepo.zsh
-{{{1 aurum://status
-#1: aurum://annotate:%ETMPDIR%%-test%-annotate-buffersrepo:504f74154456dbb0e9441326514e42ce66279e62:.hgignore
-*2: aurum://file:%ETMPDIR%%-test%-annotate-buffersrepo:504f74154456dbb0e9441326514e42ce66279e62:.hgignore
- 3: 
- 4: aurum://status:%ETMPDIR%%-test%-annotate-buffersrepo:show:clean,
-{{{1 aurum://diff
-#1: aurum://annotate:%ETMPDIR%%-test%-testrepo:5a6a1bf999fad1f4547eeb887af54f31d11833f2:crepo.zsh
-*2: aurum://file:%ETMPDIR%%-test%-testrepo:5a6a1bf999fad1f4547eeb887af54f31d11833f2:crepo.zsh
- 3: aurum://diff:testrepo::2:crepo.zsh
-{{{1 aurum://commit
-#1: aurum://annotate:%ETMPDIR%%-test%-annotate-buffersrepo:504f74154456dbb0e9441326514e42ce66279e62:nohglinesrev.lst
-*2: aurum://file:%ETMPDIR%%-test%-annotate-buffersrepo:504f74154456dbb0e9441326514e42ce66279e62:nohglinesrev.lst
- 3: aurum://commit:annotate-buffersrepo::::nohglinesrev.lst
-{{{1 aurum://annotate 1
-#1: aurum://annotate:%ETMPDIR%%-test%-testrepo:99ea42d70fbe32af955de907352999b1d94bef5f:createrepo.zsh
-*2: aurum://file:%ETMPDIR%%-test%-testrepo:99ea42d70fbe32af955de907352999b1d94bef5f:createrepo.zsh
-{{{1 aurum://annotate 2
-#1: aurum://annotate:testrepo:2:crepo.zsh
-*2: aurum://file:%ETMPDIR%%-test%-testrepo:5a6a1bf999fad1f4547eeb887af54f31d11833f2:crepo.zsh

test/annotate.in

-:execute 'silent !hg clone testrepo '.g:curtest.'repo'
-:W{{{1 AuAnnotate
-:silent edit `=g:curtest.'repo/chgrepo.zsh'`
-:W{{{2 buffer
-:Run! AuAnnotate | wincmd p
-:W{{{2
-:call WriteFile(bufname('%'), 'w$: '.winnr('$').', w0: '.winnr())
-:bwipeout!
-:bwipeout!
-:W{{{1 AuAnnotate file
-:W{{{2 buffer
-:Run AuAnnotate file chgrepo.zsh | wincmd p
-:W{{{2
-:call WriteFile(bufname('%'), 'w$: '.winnr('$').', w0: '.winnr())
-:bwipeout!
-:bwipeout!
-:W{{{1 AuAnnotate file+rev
-:W{{{2 buffer
-:Run AuAnnotate file crepo.zsh rev 2 | wincmd p
-:W{{{2
-:call WriteFile(bufname('%'), 'w$: '.winnr('$').', w0: '.winnr())
-:bwipeout!
-:bwipeout!
-:W{{{1 AuAnnotate file+rev+repo
-:W{{{2 buffer
-:Run! AuAnnotate file annotaterepo/crepo.zsh rev 2 repo annotaterepo | wincmd p
-:W{{{2
-:call WriteFile(bufname('%'), 'w$: '.winnr('$').', w0: '.winnr())
-:bwipeout!
-:bwipeout!
-:source addmessages.vim

test/annotate.ok

Binary file removed.

test/annotatemaps.in

-:execute 'silent !hg clone testrepo '.g:curtest.'repo'
-:R silent edit chgrepo.zsh | setlocal bufhidden=wipe
-:W{{{1 o
-:AuAnnotate | wincmd p
-:0/\v^\s*2
-o:WW
-:W{{{1 a
-:wincmd p
-:0/\v^\s*2
-a:WW
-:bwipeout!
-:
-:W{{{1 <CR>
-:R silent edit chgrepo.zsh | setlocal bufhidden=wipe
-:AuAnnotate | wincmd p
-:0/\v^\s*2
-
-:WW
-:wincmd p
-:bwipeout!
-:W{{{1 D
-:R silent edit chgrepo.zsh | setlocal bufhidden=wipe
-:AuAnnotate | wincmd p
-:0/\v^\s*2
-D:WW
-:bwipeout!
-:bwipeout!
-:W{{{1 C
-:AuAnnotate repo testrepo file testrepo/crepo.zsh rev 2 | wincmd p
-:0/\v^\s*2
-C:WW
-:bwipeout!
-:bwipeout!
-:W{{{1 d
-:R silent edit chgrepo.zsh | setlocal bufhidden=wipe
-:AuAnnotate | wincmd p
-:0/\v^\s*2
-d:WW
-:bwipeout!
-:W{{{1 c
-:R silent edit chgrepo.zsh | setlocal bufhidden=wipe
-:AuAnnotate | wincmd p
-:0/\v^\s*2
-c:WW
-:bwipeout!
-:W{{{1 gD
-:R silent edit .hgtags | setlocal bufhidden=wipe
-:AuAnnotate | wincmd p
-G-gD:WTabs
-,X
-:bwipeout!
-:W{{{1 gC
-:R silent edit chgrepo.zsh | setlocal bufhidden=wipe
-:AuAnnotate | wincmd p
-:0/\v^\s*2
-gC:WTabs
-,X
-:bwipeout!
-:W{{{1 gd
-:R silent edit chgrepo.zsh | setlocal bufhidden=wipe
-:AuAnnotate | wincmd p
-:0/\v^\s*2
-gd:WW
-:bwipeout!
-:W{{{1 gc
-:R silent edit chgrepo.zsh | setlocal bufhidden=wipe
-:AuAnnotate | wincmd p
-:0/\v^\s*2
-gc:WW
-:bwipeout!
-:W{{{1 K/J
-:R AuAnnotate rev 10 file chgrepo.zsh | wincmd p
-K:WW
-:wincmd p
-J
-:WW
-:bwipeout!
-:
-:W{{{1 2K/2J
-:R AuAnnotate rev 10 file chgrepo.zsh | wincmd p
-2K:WW
-:wincmd p
-2J
-:WW
-:bwipeout!
-:
-:source addmessages.vim
-:W{{{1 U
-:command CF R call WriteFile(filereadable('chgrepo.zsh').filereadable('crepo.zsh').filereadable('createrepo.zsh'))
-:CF
-:R AuAnnotate rev 2 file crepo.zsh | wincmd p
-:0/\v^\s*2
-U:CF
-3U:CF
-:bwipeout!
-:bwipeout!

test/annotatemaps.ok

-{{{1 o
-#1: aurum://annotate:%ETMPDIR%%-test%-annotatemapsrepo:5a6a1bf999fad1f4547eeb887af54f31d11833f2:crepo.zsh
-*2: aurum://file:%ETMPDIR%%-test%-annotatemapsrepo:5a6a1bf999fad1f4547eeb887af54f31d11833f2:crepo.zsh
-{{{1 a
-#1: aurum://annotate:%ETMPDIR%%-test%-annotatemapsrepo:5a6a1bf999fad1f4547eeb887af54f31d11833f2:crepo.zsh
-*2: aurum://file:%ETMPDIR%%-test%-annotatemapsrepo:5a6a1bf999fad1f4547eeb887af54f31d11833f2:crepo.zsh
-{{{1 <CR>
-#1: aurum://file:%ETMPDIR%%-test%-annotatemapsrepo:5a6a1bf999fad1f4547eeb887af54f31d11833f2:crepo.zsh
-*2: %TMPDIR%/test/annotatemapsrepo/chgrepo.zsh
-{{{1 D
-#1: aurum://file:%ETMPDIR%%-test%-annotatemapsrepo:5a6a1bf999fad1f4547eeb887af54f31d11833f2:crepo.zsh
-*2: %TMPDIR%/test/annotatemapsrepo/chgrepo.zsh
-{{{1 C
-*1: aurum://file:%ETMPDIR%%-test%-testrepo:5a6a1bf999fad1f4547eeb887af54f31d11833f2:crepo.zsh
-#2: aurum://file:%ETMPDIR%%-test%-testrepo:dfe39aa48c6ddde158e42217548b531a45ff66e9:crepo.zsh
-{{{1 d
-*1: aurum://diff:%ETMPDIR%%-test%-annotatemapsrepo:5a6a1bf999fad1f4547eeb887af54f31d11833f2::crepo.zsh:
-{{{1 c
-*1: aurum://diff:%ETMPDIR%%-test%-annotatemapsrepo:dfe39aa48c6ddde158e42217548b531a45ff66e9:5a6a1bf999fad1f4547eeb887af54f31d11833f2:chgrepo.zsh:
-{{{1 gD
- 1*1: %TMPDIR%/test/annotatemapsrepo/.hgtags
-*2*1: aurum://file:%ETMPDIR%%-test%-annotatemapsrepo:250ba7cd831ee91c3ba5bef1faebc38c5dbca5f8:.hgtags
-*2#2: %TMPDIR%/test/annotatemapsrepo/.hgtags
-{{{1 gC
- 1*1: %TMPDIR%/test/annotatemapsrepo/chgrepo.zsh
-*2*1: aurum://file:%ETMPDIR%%-test%-annotatemapsrepo:5a6a1bf999fad1f4547eeb887af54f31d11833f2:crepo.zsh
-*2#2: aurum://file:%ETMPDIR%%-test%-annotatemapsrepo:dfe39aa48c6ddde158e42217548b531a45ff66e9:crepo.zsh
-{{{1 gd
-*1: aurum://diff:%ETMPDIR%%-test%-annotatemapsrepo:5a6a1bf999fad1f4547eeb887af54f31d11833f2:::
-{{{1 gc
-*1: aurum://diff:%ETMPDIR%%-test%-annotatemapsrepo:dfe39aa48c6ddde158e42217548b531a45ff66e9:5a6a1bf999fad1f4547eeb887af54f31d11833f2::
-{{{1 K/J
-#1: aurum://annotate:%ETMPDIR%%-test%-annotatemapsrepo:0e6e0adf281b423193f9dce097ab1df4f91215f7:chgrepo.zsh
-*2: aurum://file:%ETMPDIR%%-test%-annotatemapsrepo:0e6e0adf281b423193f9dce097ab1df4f91215f7:chgrepo.zsh
-#1: aurum://annotate:%ETMPDIR%%-test%-annotatemapsrepo:c4110a066208167dae46b08f4e0d8d2b37e842f3:chgrepo.zsh
-*2: aurum://file:%ETMPDIR%%-test%-annotatemapsrepo:c4110a066208167dae46b08f4e0d8d2b37e842f3:chgrepo.zsh
-{{{1 2K/2J
-#1: aurum://annotate:%ETMPDIR%%-test%-annotatemapsrepo:0e6e0adf281b423193f9dce097ab1df4f91215f7:chgrepo.zsh
-*2: aurum://file:%ETMPDIR%%-test%-annotatemapsrepo:0e6e0adf281b423193f9dce097ab1df4f91215f7:chgrepo.zsh
-#1: aurum://annotate:%ETMPDIR%%-test%-annotatemapsrepo:250ba7cd831ee91c3ba5bef1faebc38c5dbca5f8:chgrepo.zsh
-*2: aurum://file:%ETMPDIR%%-test%-annotatemapsrepo:250ba7cd831ee91c3ba5bef1faebc38c5dbca5f8:chgrepo.zsh
-{{{1 U
-100
-010
-001

test/audiffmaps.in

-:R AuDiff rev1 2
-:R call WriteFile(filereadable('crepo.zsh'))
-:call WriteFile(bufname('%'))
-J:call WriteFile(bufname('%'))
-K:call WriteFile(bufname('%'))
-U:R call WriteFile(filereadable('crepo.zsh'))
-:split
-:R AuDiff rev1 4 **
-:call WriteFile(bufname('%'))
-X:WB
-:WW
-X:R AuDiff rev1 4 **
-Go:call WriteFile(bufname('%'))
-XX:R edit crepo.zsh
-oabc:w
-:bwipeout
-:R AuDiff
-o:call WriteFile(bufname('%'))
-:bwipeout
-:bwipeout
-:R AuDiff
-D:call WriteFile(winnr('$'), expand('%:p'), bufname(winbufnr(winnr('#'))))
-:bwipeout
-:bwipeout
-:R AuDiff rev1 2
-gD:WTabs

test/audiffmaps.ok

-0
-aurum://diff:%ETMPDIR%%-test%-audiffmapsrepo:5a6a1bf999fad1f4547eeb887af54f31d11833f2:dfe39aa48c6ddde158e42217548b531a45ff66e9::
-aurum://diff:%ETMPDIR%%-test%-audiffmapsrepo:dfe39aa48c6ddde158e42217548b531a45ff66e9:99ea42d70fbe32af955de907352999b1d94bef5f::
-aurum://diff:%ETMPDIR%%-test%-audiffmapsrepo:5a6a1bf999fad1f4547eeb887af54f31d11833f2:dfe39aa48c6ddde158e42217548b531a45ff66e9::
-1
-aurum://diff:%ETMPDIR%%-test%-audiffmapsrepo:7e16e7cbaf9ec5b0e65832bc6f057ba825c38cac:a16a47a8d7aafc115651bfee6f1202093765365d:datelines.lst;hglines.lst:
-=aurum://diff:%ETMPDIR%%-test%-audiffmapsrepo:5a6a1bf999fad1f4547eeb887af54f31d11833f2:dfe39aa48c6ddde158e42217548b531a45ff66e9::
-*1: aurum://diff:%ETMPDIR%%-test%-audiffmapsrepo:5a6a1bf999fad1f4547eeb887af54f31d11833f2:dfe39aa48c6ddde158e42217548b531a45ff66e9::
-#2: aurum://diff:%ETMPDIR%%-test%-audiffmapsrepo:5a6a1bf999fad1f4547eeb887af54f31d11833f2:dfe39aa48c6ddde158e42217548b531a45ff66e9::
-aurum://file:%ETMPDIR%%-test%-audiffmapsrepo:7e16e7cbaf9ec5b0e65832bc6f057ba825c38cac:hglines.lst
-%TMPDIR%/test/audiffmapsrepo/crepo.zsh
-2
-%TMPDIR%/test/audiffmapsrepo/crepo.zsh
-aurum://file:%ETMPDIR%%-test%-audiffmapsrepo:5a6a1bf999fad1f4547eeb887af54f31d11833f2:crepo.zsh
- 1*1: aurum://diff:%ETMPDIR%%-test%-audiffmapsrepo:5a6a1bf999fad1f4547eeb887af54f31d11833f2:dfe39aa48c6ddde158e42217548b531a45ff66e9::
-*2*1: aurum://file:%ETMPDIR%%-test%-audiffmapsrepo:dfe39aa48c6ddde158e42217548b531a45ff66e9:crepo.zsh
-*2#2: aurum://file:%ETMPDIR%%-test%-audiffmapsrepo:5a6a1bf999fad1f4547eeb887af54f31d11833f2:crepo.zsh

test/aufilemaps.in

-:R AuFile 2 crepo.zsh
-:R call WriteFile(filereadable('crepo.zsh'))
-:call WriteFile(bufname('%'))
-J:call WriteFile(bufname('%'))
-K:call WriteFile(bufname('%'))
-U:R call WriteFile(filereadable('crepo.zsh'))
-:split
-:R AuFile tip chgrepo.zsh
-:call WriteFile(bufname('%'))
-X:WB
-:WW
-:only
-d:call WriteFile(bufname('%'))
-:bwipeout!
-c:call WriteFile(bufname('%'))
-:bwipeout!
-:W::: D
-D:WW
-:diffoff!
-:bwipeout!
-:W::: C
-C:WW
-:W::: ,X
-,X:WW

test/aufilemaps.ok

-0
-aurum://file:%ETMPDIR%%-test%-aufilemapsrepo:5a6a1bf999fad1f4547eeb887af54f31d11833f2:crepo.zsh
-aurum://file:%ETMPDIR%%-test%-aufilemapsrepo:dfe39aa48c6ddde158e42217548b531a45ff66e9:crepo.zsh
-aurum://file:%ETMPDIR%%-test%-aufilemapsrepo:5a6a1bf999fad1f4547eeb887af54f31d11833f2:crepo.zsh
-1
-aurum://file:%ETMPDIR%%-test%-aufilemapsrepo:504f74154456dbb0e9441326514e42ce66279e62:chgrepo.zsh
-=aurum://file:%ETMPDIR%%-test%-aufilemapsrepo:5a6a1bf999fad1f4547eeb887af54f31d11833f2:crepo.zsh
-*1: aurum://file:%ETMPDIR%%-test%-aufilemapsrepo:5a6a1bf999fad1f4547eeb887af54f31d11833f2:crepo.zsh
-#2: aurum://file:%ETMPDIR%%-test%-aufilemapsrepo:5a6a1bf999fad1f4547eeb887af54f31d11833f2:crepo.zsh
-aurum://diff:%ETMPDIR%%-test%-aufilemapsrepo::5a6a1bf999fad1f4547eeb887af54f31d11833f2::
-aurum://diff:%ETMPDIR%%-test%-aufilemapsrepo:5a6a1bf999fad1f4547eeb887af54f31d11833f2:dfe39aa48c6ddde158e42217548b531a45ff66e9::
-::: D
-*1: %TMPDIR%/test/aufilemapsrepo/crepo.zsh
-#2: aurum://file:%ETMPDIR%%-test%-aufilemapsrepo:5a6a1bf999fad1f4547eeb887af54f31d11833f2:crepo.zsh
-::: C
-#1: aurum://file:%ETMPDIR%%-test%-aufilemapsrepo:dfe39aa48c6ddde158e42217548b531a45ff66e9:crepo.zsh
-*2: aurum://file:%ETMPDIR%%-test%-aufilemapsrepo:5a6a1bf999fad1f4547eeb887af54f31d11833f2:crepo.zsh
-::: ,X
-*1: aurum://file:%ETMPDIR%%-test%-aufilemapsrepo:5a6a1bf999fad1f4547eeb887af54f31d11833f2:crepo.zsh

test/branch.in

-:W{{{1 D
-:R silent AuBranch D
-:R call writefile(['abc'], 'abcfile')
-:R silent AuCommit type ? message Added\ abcfile abcfile
-:WT
-:W{{{1 noforce C
-:R try | AuBranch C | catch | endtry
-:R call writefile(['def'], 'deffile')
-:R silent AuCommit type ? message Added\ deffile deffile
-:WT
-:W{{{1 force C
-:R silent AuBranch! C
-:R call writefile(['ghi'], 'ghifile')
-:R silent AuCommit type ? message Added\ ghifile ghifile
-:WT
-:W{{{1 repo E
-:execute 'silent AuBranch E repo '.g:curtest.'repo'
-:R call writefile(['jkl'], 'jklfile')
-:R silent AuCommit type ? message Added\ jklfile jklfile
-:WT
-:source addmessages.vim

test/branch.ok

-{{{1 D
-@  Changeset 27 (branch D)
-|  Tags: tip
-|  @ Added abcfile
-{{{1 noforce C
-@  Changeset 28 (branch D)
-|  Tags: tip
-|  @ Added deffile
-{{{1 force C
-@  Changeset 29 (branch C)
-|  Tags: tip
-|  @ Added ghifile
-{{{1 repo E
-@  Changeset 30 (branch E)
-|  Tags: tip
-|  @ Added jklfile
->>> Messages:
-Frawor:plugin/aurum:bexsts:Error while creating branch C for repository %TMPDIR%/test/branchrepo: branch already exists
-<<< Messages^

test/cmd+maps-commit.in

+:W{{{1
+:R silent edit nohglinesrev.lst
+:silent AuCommit
+Multiline
+commit
+comment:silent write
+:
+:" There is a problem with running next command in wine without the above line.
+:WT
+:W{{{1 ,i mapping
+:call append('$', 'Brand new text')
+:silent write
+:silent AuCommit
+Jkl,i
+:
+:WT
+:W{{{1 ,X mapping
+:call append('$', 'Brand new text 2')
+:silent write
+:silent AuCommit
+Mno,X:WT
+:W{{{1 message
+:call append('$', 'New text')
+:silent write
+:silent AuCommit message Def\ ghi
+:WT
+:W{{{1 message+user+date
+:let date=strftime('%Y-%m-%d_%H:%M', 1186812000)
+:call append('$', 'New text 2')
+:silent write
+:exe 'silent AuCommit message Def\ ghi user A\ <a@example.com> date '.date
+:WT!
+:W{{{1 files
+:call append('$', 'New text 3')
+:silent write
+:bwipeout!
+:R silent AuCommit **
+Pqr,i
+:
+:WT
+:source addmessages.vim

test/cmd+maps-commit.ok

+{{{1
+@  Changeset 27
+|  Tags: tip
+|  @ Multiline
+|  @ commit
+|  @ comment
+{{{1 ,i mapping
+@  Changeset 28
+|  Tags: tip
+|  @ Jkl
+{{{1 ,X mapping
+@  Changeset 28
+|  Tags: tip
+|  @ Jkl
+{{{1 message
+@  Changeset 29
+|  Tags: tip
+|  @ Def ghi
+{{{1 message+user+date
+@  Changeset 30
+|  Commited 11 Авг 2007 06:00 by A <a@example.com>
+|  Tags: tip
+|  @ Def ghi
+{{{1 files
+@  Changeset 31
+|  Tags: tip
+|  @ Pqr
+>>> Messages:
+
+
+
+<<< Messages^

test/cmd-annotate-buffers.in

+:W{{{1 file
+:R silent edit chgrepo.zsh
+:AuAnnotate
+:WW
+:bwipeout!
+:
+:W{{{1 aurum://file
+:silent edit aurum://file:testrepo:10:chgrepo.zsh
+:AuAnnotate
+:WW
+:bwipeout!
+:
+:W{{{1 aurum://copy
+:silent edit aurum://copy:testrepo/chgrepo.zsh
+:AuAnnotate
+:WW
+:bwipeout!
+:
+:W{{{1 aurum://status
+:R AuStatus show clean
+:AuAnnotate
+:WW
+:bwipeout!
+:
+:bwipeout!
+:bwipeout!
+:W{{{1 aurum://diff
+:silent edit aurum://diff:testrepo::2:crepo.zsh
+:AuAnnotate
+:WW
+:bwipeout!
+:
+:bwipeout!
+:bwipeout!
+:W{{{1 aurum://commit
+:silent edit `="aurum://commit:".g:curtest."repo::::nohglinesrev.lst"`
+:AuAnnotate
+:WW
+:bwipeout!
+:
+:bwipeout!
+:bwipeout!
+:W{{{1 aurum://annotate 1
+:silent edit aurum://annotate:testrepo:2:crepo.zsh
+:0/\v^\s*0
+:AuAnnotate
+:WW
+:bwipeout!
+:
+:bwipeout!
+:W{{{1 aurum://annotate 2
+:silent edit aurum://annotate:testrepo:2:crepo.zsh
+:0/\v^\s*2
+:AuAnnotate
+:WW
+:bwipeout!
+:
+:bwipeout!
+:source addmessages.vim

test/cmd-annotate-buffers.ok

+{{{1 file
+#1: aurum://annotate:%ETMPDIR%%-test%-cmd-annotate-buffersrepo:504f74154456dbb0e9441326514e42ce66279e62:chgrepo.zsh
+*2: %TMPDIR%/test/cmd-annotate-buffersrepo/chgrepo.zsh
+{{{1 aurum://file
+#1: aurum://annotate:%ETMPDIR%%-test%-testrepo:c4110a066208167dae46b08f4e0d8d2b37e842f3:chgrepo.zsh
+*2: aurum://file:testrepo:10:chgrepo.zsh
+{{{1 aurum://copy
+#1: aurum://annotate:%ETMPDIR%%-test%-testrepo:504f74154456dbb0e9441326514e42ce66279e62:chgrepo.zsh
+*2: aurum://copy:testrepo/chgrepo.zsh
+{{{1 aurum://status
+#1: aurum://annotate:%ETMPDIR%%-test%-cmd-annotate-buffersrepo:504f74154456dbb0e9441326514e42ce66279e62:.hgignore
+*2: aurum://file:%ETMPDIR%%-test%-cmd-annotate-buffersrepo:504f74154456dbb0e9441326514e42ce66279e62:.hgignore
+ 3: 
+ 4: aurum://status:%ETMPDIR%%-test%-cmd-annotate-buffersrepo:show:clean,
+{{{1 aurum://diff
+#1: aurum://annotate:%ETMPDIR%%-test%-testrepo:5a6a1bf999fad1f4547eeb887af54f31d11833f2:crepo.zsh
+*2: aurum://file:%ETMPDIR%%-test%-testrepo:5a6a1bf999fad1f4547eeb887af54f31d11833f2:crepo.zsh
+ 3: aurum://diff:testrepo::2:crepo.zsh
+{{{1 aurum://commit
+#1: aurum://annotate:%ETMPDIR%%-test%-cmd-annotate-buffersrepo:504f74154456dbb0e9441326514e42ce66279e62:nohglinesrev.lst
+*2: aurum://file:%ETMPDIR%%-test%-cmd-annotate-buffersrepo:504f74154456dbb0e9441326514e42ce66279e62:nohglinesrev.lst
+ 3: aurum://commit:cmd-annotate-buffersrepo::::nohglinesrev.lst
+{{{1 aurum://annotate 1
+#1: aurum://annotate:%ETMPDIR%%-test%-testrepo:99ea42d70fbe32af955de907352999b1d94bef5f:createrepo.zsh
+*2: aurum://file:%ETMPDIR%%-test%-testrepo:99ea42d70fbe32af955de907352999b1d94bef5f:createrepo.zsh
+{{{1 aurum://annotate 2
+#1: aurum://annotate:testrepo:2:crepo.zsh
+*2: aurum://file:%ETMPDIR%%-test%-testrepo:5a6a1bf999fad1f4547eeb887af54f31d11833f2:crepo.zsh

test/cmd-annotate.in

+:W{{{1 AuAnnotate
+:silent edit `=g:curtest.'repo/chgrepo.zsh'`
+:W{{{2 buffer
+:Run! AuAnnotate | wincmd p
+:W{{{2
+:call WriteFile(bufname('%'), 'w$: '.winnr('$').', w0: '.winnr())
+:bwipeout!
+:bwipeout!
+:W{{{1 AuAnnotate file
+:W{{{2 buffer
+:Run AuAnnotate file chgrepo.zsh | wincmd p
+:W{{{2
+:call WriteFile(bufname('%'), 'w$: '.winnr('$').', w0: '.winnr())
+:bwipeout!
+:bwipeout!
+:W{{{1 AuAnnotate file+rev
+:W{{{2 buffer
+:Run AuAnnotate file crepo.zsh rev 2 | wincmd p
+:W{{{2
+:call WriteFile(bufname('%'), 'w$: '.winnr('$').', w0: '.winnr())
+:bwipeout!
+:bwipeout!
+:W{{{1 AuAnnotate file+rev+repo
+:W{{{2 buffer
+:execute 'Run! AuAnnotate file '.g:curtest.'repo/crepo.zsh rev 2 repo '.g:curtest.'repo | wincmd p'
+:W{{{2
+:call WriteFile(bufname('%'), 'w$: '.winnr('$').', w0: '.winnr())
+:bwipeout!
+:bwipeout!
+:source addmessages.vim

test/cmd-annotate.ok

Binary file added.

test/cmd-branch.in

+:W{{{1 D
+:R silent AuBranch D
+:R call writefile(['abc'], 'abcfile')
+:R silent AuCommit type ? message Added\ abcfile abcfile
+:WT
+:W{{{1 noforce C
+:R try | AuBranch C | catch | endtry
+:R call writefile(['def'], 'deffile')
+:R silent AuCommit type ? message Added\ deffile deffile
+:WT
+:W{{{1 force C
+:R silent AuBranch! C
+:R call writefile(['ghi'], 'ghifile')
+:R silent AuCommit type ? message Added\ ghifile ghifile
+:WT
+:W{{{1 repo E
+:execute 'silent AuBranch E repo '.g:curtest.'repo'
+:R call writefile(['jkl'], 'jklfile')
+:R silent AuCommit type ? message Added\ jklfile jklfile
+:WT
+:source addmessages.vim

test/cmd-branch.ok

+{{{1 D
+@  Changeset 27 (branch D)
+|  Tags: tip
+|  @ Added abcfile
+{{{1 noforce C
+@  Changeset 28 (branch D)
+|  Tags: tip
+|  @ Added deffile
+{{{1 force C
+@  Changeset 29 (branch C)
+|  Tags: tip
+|  @ Added ghifile
+{{{1 repo E
+@  Changeset 30 (branch E)
+|  Tags: tip
+|  @ Added jklfile
+>>> Messages:
+Frawor:plugin/aurum:bexsts:Error while creating branch C for repository %TMPDIR%/test/cmd-branchrepo: branch already exists
+<<< Messages^
+:W{{{1
+:Run AuDiff
+:call WriteFile('w$: '.winnr('$'))
+:bwipeout!
+:W{{{1 cmd
+:Run AuDiff cmd silent\ vsplit
+:call WriteFile('w$: '.winnr('$'))
+:bwipeout!
+:W{{{1 changes
+:Run AuDiff changes 21
+:bwipeout!
+:W{{{1 rev1
+:Run AuDiff rev1 21
+:bwipeout!
+:W{{{1 rev2
+:Run AuDiff rev2 -1
+:bwipeout!
+:W{{{1 rev1 + rev2
+:Run AuDiff rev1 21 rev2 -1
+:bwipeout!
+:W{{{1 rev1 + rev2 + reverse
+:Run AuDiff rev1 21 rev2 -1 reverse
+:bwipeout!
+:W{{{1 numlines
+:Run AuDiff rev1 2 numlines 0
+:bwipeout!
+:W{{{1 git
+:Run AuDiff rev1 2 git
+:bwipeout!
+:W{{{1 file
+:Run AuDiff nohglinesrev.lst
+:bwipeout!
+:W{{{1 file :
+:R silent edit nohglinesrev.lst
+:Run AuDiff :
+:source addmessages.vim
+{{{1
+diff -r 504f74154456 addeddef
+--- /dev/null
++++ b/addeddef
+@@ -0,0 +1,1 @@
++Def
+diff -r 504f74154456 hglines2.lst
+--- a/hglines2.lst
++++ /dev/null
+@@ -1,41 +0,0 @@
+-    hg init testrepo
+-    hg commit -A -m 'Added «createrepo.zsh»' \
+-    hg mv createrepo.zsh crepo.zsh
+-    hg commit -A -m 'Renamed «createrepo.zsh» to «crepo.zsh»' \
+-    hg commit -m $'Replaced\n    {\n        ...\n    }\nwith\n    {\n        ...\n    }' \
+-    hg mv crepo.zsh chgrepo.zsh
+-    hg commit -A -m 'Renamed «crepo.zsh» to «chgrepo.zsh»' \
+-    hg commit -A -m 'Added «hglines.lst» and «datelines.lst»' \
+-    hg branch A
+-    hg commit -A -m 'Added dlines.lst' \
+-    hg branch B
+-    hg commit -A -m 'Added alines.lst' \
+-    hg branch C
+-    hg commit -A -m 'Added ablines.lst' \
+-    hg tag ablines \
+-    hg update default
+-    hg merge -r ablines
+-    hg commit -m 'Merge from C' \
+-    hg update C
+-    hg commit -A -m 'Added blines.lst' \
+-    hg tag blines \
+-    hg update -r -2
+-    hg commit -A -m 'Added clines.lst' \
+-    hg tag clines \
+-    hg update A
+-    hg merge -r B
+-    hg commit -m 'Merge from B' \
+-    hg merge -r clines
+-    hg commit -m 'Merge from C:2' \
+-    hg update default
+-    hg merge -r blines
+-    hg commit -m 'Merge from C:1' \
+-    hg merge -r A
+-    hg commit -m 'Merge from A' \
+-    hg cp hglines.lst hglines2.lst
+-    hg commit -A -m 'Copied “hglines.lst” to “hglines2.lst”' \
+-    hg commit -A -m 'Added nohglines.lst' \
+-    hg commit -A -m 'Added nohglinesrev.lst' \
+-    hg commit -A -m 'Added ignored10.lst' \
+-    hg commit -A -m 'Added .hgignore' \
+-    hg rm hglines2.lst
+diff -r 504f74154456 nohglinesrev.lst
+--- a/nohglinesrev.lst
++++ b/nohglinesrev.lst
+@@ -51,3 +51,4 @@
+ cbaderongi > 'cbA' ohce    
+ }
+ opertset zx.rat.opertset fJc rat
++abc
+w$: 1
+{{{1 cmd
+diff -r 504f74154456 addeddef
+--- /dev/null
++++ b/addeddef
+@@ -0,0 +1,1 @@
++Def
+diff -r 504f74154456 hglines2.lst
+--- a/hglines2.lst
++++ /dev/null
+@@ -1,41 +0,0 @@
+-    hg init testrepo
+-    hg commit -A -m 'Added «createrepo.zsh»' \
+-    hg mv createrepo.zsh crepo.zsh
+-    hg commit -A -m 'Renamed «createrepo.zsh» to «crepo.zsh»' \
+-    hg commit -m $'Replaced\n    {\n        ...\n    }\nwith\n    {\n        ...\n    }' \
+-    hg mv crepo.zsh chgrepo.zsh
+-    hg commit -A -m 'Renamed «crepo.zsh» to «chgrepo.zsh»' \
+-    hg commit -A -m 'Added «hglines.lst» and «datelines.lst»' \
+-    hg branch A
+-    hg commit -A -m 'Added dlines.lst' \
+-    hg branch B
+-    hg commit -A -m 'Added alines.lst' \
+-    hg branch C
+-    hg commit -A -m 'Added ablines.lst' \
+-    hg tag ablines \
+-    hg update default
+-    hg merge -r ablines
+-    hg commit -m 'Merge from C' \
+-    hg update C
+-    hg commit -A -m 'Added blines.lst' \
+-    hg tag blines \
+-    hg update -r -2
+-    hg commit -A -m 'Added clines.lst' \
+-    hg tag clines \
+-    hg update A
+-    hg merge -r B
+-    hg commit -m 'Merge from B' \
+-    hg merge -r clines
+-    hg commit -m 'Merge from C:2' \
+-    hg update default
+-    hg merge -r blines
+-    hg commit -m 'Merge from C:1' \
+-    hg merge -r A
+-    hg commit -m 'Merge from A' \
+-    hg cp hglines.lst hglines2.lst
+-    hg commit -A -m 'Copied “hglines.lst” to “hglines2.lst”' \
+-    hg commit -A -m 'Added nohglines.lst' \
+-    hg commit -A -m 'Added nohglinesrev.lst' \
+-    hg commit -A -m 'Added ignored10.lst' \
+-    hg commit -A -m 'Added .hgignore' \
+-    hg rm hglines2.lst
+diff -r 504f74154456 nohglinesrev.lst
+--- a/nohglinesrev.lst
++++ b/nohglinesrev.lst
+@@ -51,3 +51,4 @@
+ cbaderongi > 'cbA' ohce    
+ }
+ opertset zx.rat.opertset fJc rat
++abc
+w$: 2
+{{{1 changes
+diff -r 67cf252de26b -r e85aa09aab16 ignored10.lst
+--- /dev/null
++++ b/ignored10.lst
+@@ -0,0 +1,10 @@
++1
++2
++3
++4
++5
++6
++7
++8
++9
++10
+{{{1 rev1
+diff -r 67cf252de26b -r e85aa09aab16 ignored10.lst
+--- /dev/null
++++ b/ignored10.lst
+@@ -0,0 +1,10 @@
++1
++2
++3
++4
++5
++6
++7
++8
++9
++10
+{{{1 rev2
+diff -r 504f74154456 addeddef
+--- /dev/null
++++ b/addeddef
+@@ -0,0 +1,1 @@
++Def
+diff -r 504f74154456 hglines2.lst
+--- a/hglines2.lst
++++ /dev/null
+@@ -1,41 +0,0 @@
+-    hg init testrepo
+-    hg commit -A -m 'Added «createrepo.zsh»' \
+-    hg mv createrepo.zsh crepo.zsh
+-    hg commit -A -m 'Renamed «createrepo.zsh» to «crepo.zsh»' \
+-    hg commit -m $'Replaced\n    {\n        ...\n    }\nwith\n    {\n        ...\n    }' \
+-    hg mv crepo.zsh chgrepo.zsh
+-    hg commit -A -m 'Renamed «crepo.zsh» to «chgrepo.zsh»' \
+-    hg commit -A -m 'Added «hglines.lst» and «datelines.lst»' \
+-    hg branch A
+-    hg commit -A -m 'Added dlines.lst' \
+-    hg branch B
+-    hg commit -A -m 'Added alines.lst' \
+-    hg branch C
+-    hg commit -A -m 'Added ablines.lst' \
+-    hg tag ablines \
+-    hg update default
+-    hg merge -r ablines
+-    hg commit -m 'Merge from C' \
+-    hg update C
+-    hg commit -A -m 'Added blines.lst' \
+-    hg tag blines \
+-    hg update -r -2
+-    hg commit -A -m 'Added clines.lst' \
+-    hg tag clines \
+-    hg update A
+-    hg merge -r B
+-    hg commit -m 'Merge from B' \
+-    hg merge -r clines
+-    hg commit -m 'Merge from C:2' \
+-    hg update default
+-    hg merge -r blines
+-    hg commit -m 'Merge from C:1' \
+-    hg merge -r A
+-    hg commit -m 'Merge from A' \
+-    hg cp hglines.lst hglines2.lst
+-    hg commit -A -m 'Copied “hglines.lst” to “hglines2.lst”' \
+-    hg commit -A -m 'Added nohglines.lst' \
+-    hg commit -A -m 'Added nohglinesrev.lst' \
+-    hg commit -A -m 'Added ignored10.lst' \
+-    hg commit -A -m 'Added .hgignore' \
+-    hg rm hglines2.lst
+diff -r 504f74154456 nohglinesrev.lst
+--- a/nohglinesrev.lst
++++ b/nohglinesrev.lst
+@@ -51,3 +51,4 @@
+ cbaderongi > 'cbA' ohce    
+ }
+ opertset zx.rat.opertset fJc rat
++abc
+{{{1 rev1 + rev2
+diff -r 504f74154456 -r e85aa09aab16 .hgignore
+--- a/.hgignore
++++ /dev/null
+@@ -1,2 +0,0 @@
+-syntax: glob
+-ignored*
+diff -r 504f74154456 -r e85aa09aab16 .hgtags
+--- a/.hgtags
++++ b/.hgtags
+@@ -1,2 +1,1 @@
+ c06107b7bcbe751d2dd40faf4179ee7d6aac44ac ablines
+-023aa55bd8062179ce36adbdd78363e9b88718c1 oldtag
+diff -r 504f74154456 -r e85aa09aab16 directory/file
+--- a/directory/file
++++ /dev/null
+@@ -1,1 +0,0 @@
+-File contents
+diff -r 504f74154456 -r e85aa09aab16 emerged.lst
+--- a/emerged.lst
++++ /dev/null
+@@ -1,127 +0,0 @@
+-<<<<<<< local
+-=======
+-emulate -L zsh
+-set -e
+-local A='A <a@example.com>'
+-local B='B <b@example.org>'
+-local C='C <c@example.gov>'
+-    set -e
+->>>>>>> other
+-    hg init testrepo
+-    cd testrepo
+-    cp ../createrepo.zsh .
+-<<<<<<< local
+-=======
+-    # XXX Date test will work only till 2099
+->>>>>>> other
+-    hg commit -A -m 'Added «createrepo.zsh»' \
+-<<<<<<< local
+-=======
+-        --date '1999-01-02 5:20' --user $A
+->>>>>>> other
+-    hg mv createrepo.zsh crepo.zsh
+-    hg commit -A -m 'Renamed «createrepo.zsh» to «crepo.zsh»' \
+-<<<<<<< local
+-=======
+-        --date '2000-01-05 7:30' --user $A
+->>>>>>> other
+-    perl -p -i -e 'tr/{}/{}/' crepo.zsh
+-    hg commit -m $'Replaced\n    {\n        ...\n    }\nwith\n    {\n        ...\n    }' \
+-<<<<<<< local
+-=======
+-        --date '2000-01-15 15:00' --user $B
+->>>>>>> other
+-    hg mv crepo.zsh chgrepo.zsh
+-    hg commit -A -m 'Renamed «crepo.zsh» to «chgrepo.zsh»' \
+-<<<<<<< local
+-=======
+-        --date '2000-02-01 14:00' --user $B
+->>>>>>> other
+-    cat chgrepo.zsh | perl -p -i -e 'undef $_ unless /^    hg /' > hglines.lst
+-    cat chgrepo.zsh | perl -p -i -e 'undef $_ unless /^    hg /' > datelines.lst
+-<<<<<<< local
+-=======
+-    hg commit -A -m 'Added «hglines.lst» and «datelines.lst»' \
+-        --date '2000-05-10 4:23' --user $A
+->>>>>>> other
+-    cat chgrepo.zsh | grep 'd' > dlines.lst
+-<<<<<<< local
+-=======
+-    hg commit -A -m 'Added dlines.lst' \
+-        --date '2000-11-01 13:24' --user $B
+->>>>>>> other
+-    cat chgrepo.zsh | grep 'a' > alines.lst
+-<<<<<<< local
+-=======
+-    hg commit -A -m 'Added alines.lst' \
+-        --date '2000-11-02 5:44' --user $A
+->>>>>>> other
+-    cat alines.lst | grep 'b' > ablines.lst
+-<<<<<<< local
+-=======
+-    hg commit -A -m 'Added ablines.lst' \
+-        --date '2000-11-02 14:13' --user $B
+-    hg tag ablines \
+-        --date '2000-11-02 14:14' --user $B
+-    hg update default
+-    hg merge -r ablines
+-    hg commit -m 'Merge from C' \
+-        --date '2001-01-01 00:00' --user $C
+-    hg update C
+->>>>>>> other
+-    cat chgrepo.zsh | grep 'b' > blines.lst
+-<<<<<<< local
+-=======
+-    hg commit -A -m 'Added blines.lst' \
+-        --date '2001-02-01 05:18' --user $A
+-    hg tag blines \
+-        --date '2001-02-01 05:19' --user $A
+-    hg update -r -2
+->>>>>>> other
+-    cat chgrepo.zsh | sort | grep 'c' > clines.lst
+-<<<<<<< local
+-=======
+-    hg commit -A -m 'Added clines.lst' \
+-        --date '2001-02-01 14:56' --user $B
+-    hg tag clines \
+-        --date '2001-02-01 14:56:52' --user $B
+-    hg update A
+-    hg merge -r B
+-    hg commit -m 'Merge from B' \
+-        --date '2002-01-01 00:00' --user $C
+-    hg merge -r clines
+-    hg commit -m 'Merge from C:2' \
+-        --date '2002-01-01 00:00:15' --user $C
+-    hg update default
+-    hg merge -r blines
+-    hg commit -m 'Merge from C:1' \
+-        --date '2002-01-01 00:00:30' --user $C
+-    hg merge -r A
+-    hg commit -m 'Merge from A' \
+-        --date '2002-01-01 00:00:45' --user $C
+-    hg cp hglines.lst hglines2.lst
+-    hg commit -A -m 'Copied “hglines.lst” to “hglines2.lst”' \
+-        --date '2002-02-10 05:00' --user $A
+->>>>>>> other
+-    cat chgrepo.zsh | perl -p -i -e 'undef $_ if /^    hg /' > nohglines.lst
+-<<<<<<< local
+-=======
+-    hg commit -A -m 'Added nohglines.lst' \
+-        --date '2002-02-10 15:33' --user $B
+-    cat nohglines.lst | rev > nohglinesrev.lst
+-    hg commit -A -m 'Added nohglinesrev.lst' \
+-        --date '2002-02-10 16:01' --user $B
+-    seq 1 10 | tr ' ' $'\n' > ignored10.lst
+-    hg commit -A -m 'Added ignored10.lst' \
+-        --date '2002-02-11 03:15' --user $A
+-    echo $'syntax: glob\nignored*' > .hgignore
+-    hg commit -A -m 'Added .hgignore' \
+-        --date '2002-02-11 05:43' --user $A
+-    echo abc >> nohglinesrev.lst
+-    echo 'Def' > addeddef && hg add addeddef
+-    hg rm hglines2.lst
+-    rm nohglines.lst
+-    cat hglines.lst | rev > hglinesrev.lst
+-    echo 'Abc' > ignoredabc
+->>>>>>> other
+-tar cJf testrepo.tar.xz testrepo
+diff -r 504f74154456 -r e85aa09aab16 glines.lst
+--- a/glines.lst
++++ /dev/null
+@@ -1,83 +0,0 @@
+-<<<<<<< local
+-=======
+-local B='B <b@example.org>'
+-local C='C <c@example.gov>'
+-    hg init testrepo
+-    hg commit -A -m 'Added «createrepo.zsh»' \
+-    hg mv createrepo.zsh crepo.zsh
+-    hg commit -A -m 'Renamed «createrepo.zsh» to «crepo.zsh»' \
+-    hg commit -m $'Replaced\n    {\n        ...\n    }\nwith\n    {\n        ...\n    }' \
+->>>>>>> other
+-    hg mv crepo.zsh chgrepo.zsh
+-    hg commit -A -m 'Renamed «crepo.zsh» to «chgrepo.zsh»' \
+-    cat chgrepo.zsh | perl -p -i -e 'undef $_ unless /^    hg /' > hglines.lst
+-    cat chgrepo.zsh | perl -p -i -e 'undef $_ unless /^    hg /' > datelines.lst
+-<<<<<<< local
+-=======
+-    hg commit -A -m 'Added «hglines.lst» and «datelines.lst»' \
+-    hg branch A
+->>>>>>> other
+-    cat chgrepo.zsh | grep 'd' > dlines.lst
+-<<<<<<< local
+-=======
+-    hg commit -A -m 'Added dlines.lst' \
+-    hg branch B
+->>>>>>> other
+-    cat chgrepo.zsh | grep 'a' > alines.lst
+-<<<<<<< local
+-=======
+-    hg commit -A -m 'Added alines.lst' \
+-    hg branch C
+->>>>>>> other
+-    cat alines.lst | grep 'b' > ablines.lst
+-<<<<<<< local
+-=======
+-    hg commit -A -m 'Added ablines.lst' \
+-    hg tag ablines \
+-    hg update default
+-    hg merge -r ablines
+-    hg commit -m 'Merge from C' \
+-    hg update C
+->>>>>>> other
+-    cat chgrepo.zsh | grep 'b' > blines.lst
+-<<<<<<< local
+-=======
+-    hg commit -A -m 'Added blines.lst' \
+-    hg tag blines \
+-    hg update -r -2
+->>>>>>> other
+-    cat chgrepo.zsh | sort | grep 'c' > clines.lst
+-<<<<<<< local
+-=======
+-    hg commit -A -m 'Added clines.lst' \
+-    hg tag clines \
+-    hg update A
+-    hg merge -r B
+-    hg commit -m 'Merge from B' \
+-    hg merge -r clines
+-    hg commit -m 'Merge from C:2' \
+-    hg update default
+-    hg merge -r blines
+-    hg commit -m 'Merge from C:1' \
+-    hg merge -r A
+-    hg commit -m 'Merge from A' \
+-    hg cp hglines.lst hglines2.lst
+-    hg commit -A -m 'Copied “hglines.lst” to “hglines2.lst”' \
+->>>>>>> other
+-    cat chgrepo.zsh | perl -p -i -e 'undef $_ if /^    hg /' > nohglines.lst
+-<<<<<<< local
+-=======
+-    hg commit -A -m 'Added nohglines.lst' \
+-    cat nohglines.lst | rev > nohglinesrev.lst
+-    hg commit -A -m 'Added nohglinesrev.lst' \
+-    seq 1 10 | tr ' ' $'\n' > ignored10.lst
+-    hg commit -A -m 'Added ignored10.lst' \
+-    echo $'syntax: glob\nignored*' > .hgignore
+-    hg commit -A -m 'Added .hgignore' \
+-    echo abc >> nohglinesrev.lst
+-    echo 'Def' > addeddef && hg add addeddef
+-    hg rm hglines2.lst
+-    rm nohglines.lst
+-    cat hglines.lst | rev > hglinesrev.lst
+-    echo 'Abc' > ignoredabc
+->>>>>>> other
+diff -r 504f74154456 -r e85aa09aab16 glinescopy.lst
+--- a/glinescopy.lst
++++ /dev/null
+@@ -1,83 +0,0 @@
+-<<<<<<< local
+-=======
+-local B='B <b@example.org>'
+-local C='C <c@example.gov>'
+-    hg init testrepo
+-    hg commit -A -m 'Added «createrepo.zsh»' \
+-    hg mv createrepo.zsh crepo.zsh
+-    hg commit -A -m 'Renamed «createrepo.zsh» to «crepo.zsh»' \
+-    hg commit -m $'Replaced\n    {\n        ...\n    }\nwith\n    {\n        ...\n    }' \
+->>>>>>> other
+-    hg mv crepo.zsh chgrepo.zsh
+-    hg commit -A -m 'Renamed «crepo.zsh» to «chgrepo.zsh»' \
+-    cat chgrepo.zsh | perl -p -i -e 'undef $_ unless /^    hg /' > hglines.lst
+-    cat chgrepo.zsh | perl -p -i -e 'undef $_ unless /^    hg /' > datelines.lst
+-<<<<<<< local
+-=======
+-    hg commit -A -m 'Added «hglines.lst» and «datelines.lst»' \
+-    hg branch A
+->>>>>>> other
+-    cat chgrepo.zsh | grep 'd' > dlines.lst
+-<<<<<<< local
+-=======
+-    hg commit -A -m 'Added dlines.lst' \
+-    hg branch B
+->>>>>>> other
+-    cat chgrepo.zsh | grep 'a' > alines.lst
+-<<<<<<< local
+-=======
+-    hg commit -A -m 'Added alines.lst' \
+-    hg branch C
+->>>>>>> other
+-    cat alines.lst | grep 'b' > ablines.lst
+-<<<<<<< local
+-=======
+-    hg commit -A -m 'Added ablines.lst' \
+-    hg tag ablines \
+-    hg update default
+-    hg merge -r ablines
+-    hg commit -m 'Merge from C' \
+-    hg update C
+->>>>>>> other
+-    cat chgrepo.zsh | grep 'b' > blines.lst
+-<<<<<<< local
+-=======
+-    hg commit -A -m 'Added blines.lst' \
+-    hg tag blines \
+-    hg update -r -2
+->>>>>>> other
+-    cat chgrepo.zsh | sort | grep 'c' > clines.lst
+-<<<<<<< local
+-=======
+-    hg commit -A -m 'Added clines.lst' \
+-    hg tag clines \
+-    hg update A
+-    hg merge -r B
+-    hg commit -m 'Merge from B' \
+-    hg merge -r clines
+-    hg commit -m 'Merge from C:2' \
+-    hg update default
+-    hg merge -r blines
+-    hg commit -m 'Merge from C:1' \
+-    hg merge -r A
+-    hg commit -m 'Merge from A' \
+-    hg cp hglines.lst hglines2.lst
+-    hg commit -A -m 'Copied “hglines.lst” to “hglines2.lst”' \
+->>>>>>> other
+-    cat chgrepo.zsh | perl -p -i -e 'undef $_ if /^    hg /' > nohglines.lst
+-<<<<<<< local
+-=======
+-    hg commit -A -m 'Added nohglines.lst' \
+-    cat nohglines.lst | rev > nohglinesrev.lst
+-    hg commit -A -m 'Added nohglinesrev.lst' \
+-    seq 1 10 | tr ' ' $'\n' > ignored10.lst
+-    hg commit -A -m 'Added ignored10.lst' \
+-    echo $'syntax: glob\nignored*' > .hgignore
+-    hg commit -A -m 'Added .hgignore' \
+-    echo abc >> nohglinesrev.lst
+-    echo 'Def' > addeddef && hg add addeddef
+-    hg rm hglines2.lst
+-    rm nohglines.lst
+-    cat hglines.lst | rev > hglinesrev.lst
+-    echo 'Abc' > ignoredabc
+->>>>>>> other
+{{{1 rev1 + rev2 + reverse
+diff -r e85aa09aab16 -r 504f74154456 .hgignore
+--- /dev/null
++++ b/.hgignore
+@@ -0,0 +1,2 @@
++syntax: glob
++ignored*
+diff -r e85aa09aab16 -r 504f74154456 .hgtags
+--- a/.hgtags
++++ b/.hgtags
+@@ -1,1 +1,2 @@
+ c06107b7bcbe751d2dd40faf4179ee7d6aac44ac ablines
++023aa55bd8062179ce36adbdd78363e9b88718c1 oldtag
+diff -r e85aa09aab16 -r 504f74154456 directory/file
+--- /dev/null
++++ b/directory/file
+@@ -0,0 +1,1 @@
++File contents
+diff -r e85aa09aab16 -r 504f74154456 emerged.lst
+--- /dev/null
++++ b/emerged.lst
+@@ -0,0 +1,127 @@
++<<<<<<< local
++=======
++emulate -L zsh
++set -e
++local A='A <a@example.com>'
++local B='B <b@example.org>'
++local C='C <c@example.gov>'
++    set -e
++>>>>>>> other
++    hg init testrepo
++    cd testrepo
++    cp ../createrepo.zsh .
++<<<<<<< local
++=======
++    # XXX Date test will work only till 2099
++>>>>>>> other
++    hg commit -A -m 'Added «createrepo.zsh»' \
++<<<<<<< local
++=======
++        --date '1999-01-02 5:20' --user $A
++>>>>>>> other
++    hg mv createrepo.zsh crepo.zsh
++    hg commit -A -m 'Renamed «createrepo.zsh» to «crepo.zsh»' \
++<<<<<<< local
++=======
++        --date '2000-01-05 7:30' --user $A
++>>>>>>> other
++    perl -p -i -e 'tr/{}/{}/' crepo.zsh
++    hg commit -m $'Replaced\n    {\n        ...\n    }\nwith\n    {\n        ...\n    }' \
++<<<<<<< local
++=======
++        --date '2000-01-15 15:00' --user $B
++>>>>>>> other
++    hg mv crepo.zsh chgrepo.zsh
++    hg commit -A -m 'Renamed «crepo.zsh» to «chgrepo.zsh»' \
++<<<<<<< local
++=======
++        --date '2000-02-01 14:00' --user $B
++>>>>>>> other
++    cat chgrepo.zsh | perl -p -i -e 'undef $_ unless /^    hg /' > hglines.lst
++    cat chgrepo.zsh | perl -p -i -e 'undef $_ unless /^    hg /' > datelines.lst
++<<<<<<< local
++=======
++    hg commit -A -m 'Added «hglines.lst» and «datelines.lst»' \
++        --date '2000-05-10 4:23' --user $A
++>>>>>>> other
++    cat chgrepo.zsh | grep 'd' > dlines.lst
++<<<<<<< local
++=======
++    hg commit -A -m 'Added dlines.lst' \
++        --date '2000-11-01 13:24' --user $B
++>>>>>>> other
++    cat chgrepo.zsh | grep 'a' > alines.lst
++<<<<<<< local
++=======
++    hg commit -A -m 'Added alines.lst' \
++        --date '2000-11-02 5:44' --user $A
++>>>>>>> other
++    cat alines.lst | grep 'b' > ablines.lst
++<<<<<<< local
++=======
++    hg commit -A -m 'Added ablines.lst' \
++        --date '2000-11-02 14:13' --user $B
++    hg tag ablines \
++        --date '2000-11-02 14:14' --user $B
++    hg update default
++    hg merge -r ablines
++    hg commit -m 'Merge from C' \
++        --date '2001-01-01 00:00' --user $C
++    hg update C
++>>>>>>> other
++    cat chgrepo.zsh | grep 'b' > blines.lst
++<<<<<<< local
++=======
++    hg commit -A -m 'Added blines.lst' \
++        --date '2001-02-01 05:18' --user $A
++    hg tag blines \
++        --date '2001-02-01 05:19' --user $A
++    hg update -r -2
++>>>>>>> other
++    cat chgrepo.zsh | sort | grep 'c' > clines.lst
++<<<<<<< local
++=======
++    hg commit -A -m 'Added clines.lst' \
++        --date '2001-02-01 14:56' --user $B
++    hg tag clines \
++        --date '2001-02-01 14:56:52' --user $B
++    hg update A
++    hg merge -r B
++    hg commit -m 'Merge from B' \
++        --date '2002-01-01 00:00' --user $C
++    hg merge -r clines
++    hg commit -m 'Merge from C:2' \
++        --date '2002-01-01 00:00:15' --user $C
++    hg update default
++    hg merge -r blines
++    hg commit -m 'Merge from C:1' \
++        --date '2002-01-01 00:00:30' --user $C
++    hg merge -r A
++    hg commit -m 'Merge from A' \
++        --date '2002-01-01 00:00:45' --user $C
++    hg cp hglines.lst hglines2.lst
++    hg commit -A -m 'Copied “hglines.lst” to “hglines2.lst”' \
++        --date '2002-02-10 05:00' --user $A
++>>>>>>> other
++    cat chgrepo.zsh | perl -p -i -e 'undef $_ if /^    hg /' > nohglines.lst
++<<<<<<< local
++=======
++    hg commit -A -m 'Added nohglines.lst' \
++        --date '2002-02-10 15:33' --user $B
++    cat nohglines.lst | rev > nohglinesrev.lst
++    hg commit -A -m 'Added nohglinesrev.lst' \
++        --date '2002-02-10 16:01' --user $B
++    seq 1 10 | tr ' ' $'\n' > ignored10.lst
++    hg commit -A -m 'Added ignored10.lst' \
++        --date '2002-02-11 03:15' --user $A
++    echo $'syntax: glob\nignored*' > .hgignore
++    hg commit -A -m 'Added .hgignore' \
++        --date '2002-02-11 05:43' --user $A
++    echo abc >> nohglinesrev.lst
++    echo 'Def' > addeddef && hg add addeddef
++    hg rm hglines2.lst
++    rm nohglines.lst
++    cat hglines.lst | rev > hglinesrev.lst
++    echo 'Abc' > ignoredabc
++>>>>>>> other
++tar cJf testrepo.tar.xz testrepo
+diff -r e85aa09aab16 -r 504f74154456 glines.lst
+--- /dev/null
++++ b/glines.lst
+@@ -0,0 +1,83 @@
++<<<<<<< local
++=======
++local B='B <b@example.org>'
++local C='C <c@example.gov>'
++    hg init testrepo
++    hg commit -A -m 'Added «createrepo.zsh»' \
++    hg mv createrepo.zsh crepo.zsh
++    hg commit -A -m 'Renamed «createrepo.zsh» to «crepo.zsh»' \
++    hg commit -m $'Replaced\n    {\n        ...\n    }\nwith\n    {\n        ...\n    }' \
++>>>>>>> other
++    hg mv crepo.zsh chgrepo.zsh
++    hg commit -A -m 'Renamed «crepo.zsh» to «chgrepo.zsh»' \
++    cat chgrepo.zsh | perl -p -i -e 'undef $_ unless /^    hg /' > hglines.lst
++    cat chgrepo.zsh | perl -p -i -e 'undef $_ unless /^    hg /' > datelines.lst
++<<<<<<< local
++=======
++    hg commit -A -m 'Added «hglines.lst» and «datelines.lst»' \
++    hg branch A
++>>>>>>> other
++    cat chgrepo.zsh | grep 'd' > dlines.lst
++<<<<<<< local
++=======
++    hg commit -A -m 'Added dlines.lst' \
++    hg branch B
++>>>>>>> other
++    cat chgrepo.zsh | grep 'a' > alines.lst
++<<<<<<< local
++=======
++    hg commit -A -m 'Added alines.lst' \
++    hg branch C
++>>>>>>> other
++    cat alines.lst | grep 'b' > ablines.lst
++<<<<<<< local
++=======
++    hg commit -A -m 'Added ablines.lst' \
++    hg tag ablines \
++    hg update default
++    hg merge -r ablines
++    hg commit -m 'Merge from C' \
++    hg update C
++>>>>>>> other
++    cat chgrepo.zsh | grep 'b' > blines.lst
++<<<<<<< local
++=======
++    hg commit -A -m 'Added blines.lst' \
++    hg tag blines \
++    hg update -r -2
++>>>>>>> other
++    cat chgrepo.zsh | sort | grep 'c' > clines.lst
++<<<<<<< local
++=======
++    hg commit -A -m 'Added clines.lst' \
++    hg tag clines \
++    hg update A
++    hg merge -r B
++    hg commit -m 'Merge from B' \
++    hg merge -r clines
++    hg commit -m 'Merge from C:2' \
++    hg update default
++    hg merge -r blines
++    hg commit -m 'Merge from C:1' \
++    hg merge -r A
++    hg commit -m 'Merge from A' \
++    hg cp hglines.lst hglines2.lst
++    hg commit -A -m 'Copied “hglines.lst” to “hglines2.lst”' \
++>>>>>>> other
++    cat chgrepo.zsh | perl -p -i -e 'undef $_ if /^    hg /' > nohglines.lst
++<<<<<<< local
++=======
++    hg commit -A -m 'Added nohglines.lst' \
++    cat nohglines.lst | rev > nohglinesrev.lst
++    hg commit -A -m 'Added nohglinesrev.lst' \
++    seq 1 10 | tr ' ' $'\n' > ignored10.lst
++    hg commit -A -m 'Added ignored10.lst' \
++    echo $'syntax: glob\nignored*' > .hgignore
++    hg commit -A -m 'Added .hgignore' \
++    echo abc >> nohglinesrev.lst
++    echo 'Def' > addeddef && hg add addeddef
++    hg rm hglines2.lst
++    rm nohglines.lst
++    cat hglines.lst | rev > hglinesrev.lst
++    echo 'Abc' > ignoredabc
++>>>>>>> other
+diff -r e85aa09aab16 -r 504f74154456 glinescopy.lst
+--- /dev/null
++++ b/glinescopy.lst
+@@ -0,0 +1,83 @@
++<<<<<<< local
++=======
++local B='B <b@example.org>'
++local C='C <c@example.gov>'
++    hg init testrepo
++    hg commit -A -m 'Added «createrepo.zsh»' \
++    hg mv createrepo.zsh crepo.zsh
++    hg commit -A -m 'Renamed «createrepo.zsh» to «crepo.zsh»' \
++    hg commit -m $'Replaced\n    {\n        ...\n    }\nwith\n    {\n        ...\n    }' \
++>>>>>>> other
++    hg mv crepo.zsh chgrepo.zsh
++    hg commit -A -m 'Renamed «crepo.zsh» to «chgrepo.zsh»' \
++    cat chgrepo.zsh | perl -p -i -e 'undef $_ unless /^    hg /' > hglines.lst
++    cat chgrepo.zsh | perl -p -i -e 'undef $_ unless /^    hg /' > datelines.lst
++<<<<<<< local
++=======
++    hg commit -A -m 'Added «hglines.lst» and «datelines.lst»' \
++    hg branch A
++>>>>>>> other
++    cat chgrepo.zsh | grep 'd' > dlines.lst
++<<<<<<< local
++=======
++    hg commit -A -m 'Added dlines.lst' \
++    hg branch B
++>>>>>>> other
++    cat chgrepo.zsh | grep 'a' > alines.lst
++<<<<<<< local
++=======
++    hg commit -A -m 'Added alines.lst' \
++    hg branch C
++>>>>>>> other
++    cat alines.lst | grep 'b' > ablines.lst
++<<<<<<< local
++=======
++    hg commit -A -m 'Added ablines.lst' \
++    hg tag ablines \
++    hg update default
++    hg merge -r ablines
++    hg commit -m 'Merge from C' \
++    hg update C
++>>>>>>> other
++    cat chgrepo.zsh | grep 'b' > blines.lst
++<<<<<<< local
++=======
++    hg commit -A -m 'Added blines.lst' \
++    hg tag blines \
++    hg update -r -2
++>>>>>>> other
++    cat chgrepo.zsh | sort | grep 'c' > clines.lst
++<<<<<<< local
++=======
++    hg commit -A -m 'Added clines.lst' \
++    hg tag clines \
++    hg update A
++    hg merge -r B
++    hg commit -m 'Merge from B' \
++    hg merge -r clines
++    hg commit -m 'Merge from C:2' \
++    hg update default
++    hg merge -r blines
++    hg commit -m 'Merge from C:1' \
++    hg merge -r A
++    hg commit -m 'Merge from A' \
++    hg cp hglines.lst hglines2.lst
++    hg commit -A -m 'Copied “hglines.lst” to “hglines2.lst”' \
++>>>>>>> other
++    cat chgrepo.zsh | perl -p -i -e 'undef $_ if /^    hg /' > nohglines.lst
++<<<<<<< local
++=======
++    hg commit -A -m 'Added nohglines.lst' \
++    cat nohglines.lst | rev > nohglinesrev.lst
++    hg commit -A -m 'Added nohglinesrev.lst' \
++    seq 1 10 | tr ' ' $'\n' > ignored10.lst
++    hg commit -A -m 'Added ignored10.lst' \
++    echo $'syntax: glob\nignored*' > .hgignore
++    hg commit -A -m 'Added .hgignore' \
++    echo abc >> nohglinesrev.lst
++    echo 'Def' > addeddef && hg add addeddef
++    hg rm hglines2