Describe gina#command#chaperon Before all let Path = vital#gina#import('System.Filepath') let slit1 = Slit(tempname(), 1) let filename1 = slit1.path('A/foo.txt') let filename2 = slit1.path('B/foo.txt') call slit1.write('A/foo.txt', []) call slit1.write('B/foo.txt', []) call slit1.execute('add %s', slit1.path('A/foo.txt')) call slit1.execute('add %s', slit1.path('B/foo.txt')) call slit1.write('A/foo.txt', ['1']) call slit1.execute('commit --quiet -am "First"') call slit1.execute('checkout -b develop') call slit1.execute('checkout master') call slit1.write('A/foo.txt', ['2']) call slit1.execute('commit --quiet -am "Second"') call slit1.execute('checkout develop') call slit1.write('A/foo.txt', ['3']) call slit1.execute('commit --quiet -am "Third"') call slit1.execute('checkout master') call slit1.execute('merge develop') End After all %bwipeout! End Before %bwipeout! End Describe Use cases It might be called without arguments execute 'edit' fnameescape(filename1) GinaSync chaperon Assert Equals(tabpagenr('$'), 2) Assert Equals(winnr('$'), 3) " Focused buffer Assert Equals(bufname('%'), filename1) Assert Equals(getline(1, '$'), [ \ '', \]) " topleft let bufnr = winbufnr(1) Assert Equals(bufname(bufnr), printf('gina://%s:show/:2:A/foo.txt', slit1.refname)) Assert Equals(getbufline(bufnr, 1, '$'), [ \ '2', \]) " center let bufnr = winbufnr(2) Assert Equals(bufname(bufnr), filename1) Assert Equals(getbufline(bufnr, 1, '$'), [ \ '', \]) " botright let bufnr = winbufnr(3) Assert Equals(bufname(bufnr), printf('gina://%s:show/:3:A/foo.txt', slit1.refname)) Assert Equals(getbufline(bufnr, 1, '$'), [ \ '3', \]) " dor obtain changes from right normal dor Assert Equals(getline(1, '$'), [ \ '3', \]) " dol obtain changes from left normal dol Assert Equals(getline(1, '$'), [ \ '2', \]) End End End