patch 7.4.1988
Problem:    When updating viminfo with file marks there is no time order.
Solution:   Remember the time when a buffer was last used, store marks for
            the most recently used buffers.
diff --git a/src/testdir/test_viminfo.vim b/src/testdir/test_viminfo.vim
index 76b2440..4c4935b 100644
--- a/src/testdir/test_viminfo.vim
+++ b/src/testdir/test_viminfo.vim
@@ -395,3 +395,33 @@
   call delete('Xviminfo')
 endfunc
 
+func Test_viminfo_file_marks()
+  silent! bwipe test_viminfo.vim
+  silent! bwipe Xviminfo
+
+  call test_settime(10)
+  edit ten
+  call test_settime(25)
+  edit again
+  call test_settime(30)
+  edit thirty
+  wviminfo Xviminfo
+
+  call test_settime(20)
+  edit twenty
+  call test_settime(35)
+  edit again
+  call test_settime(40)
+  edit fourty
+  wviminfo Xviminfo
+
+  sp Xviminfo
+  1
+  for name in ['fourty', 'again', 'thirty', 'twenty', 'ten']
+    /^>
+    call assert_equal(name, substitute(getline('.'), '.*/', '', ''))
+  endfor
+  close
+
+  call delete('Xviminfo')
+endfunc