Make FSFS require FS version 3 for mergeinfo operations.
commitea26c32ce1701156a3a9ac70a23987a8b0b48b75
authorglasser <glasser@612f8ebc-c883-4be0-9ee0-a4e9ef946e3a>
Mon, 11 Feb 2008 22:38:43 +0000 (11 22:38 +0000)
committerglasser <glasser@612f8ebc-c883-4be0-9ee0-a4e9ef946e3a>
Mon, 11 Feb 2008 22:38:43 +0000 (11 22:38 +0000)
treee3859062703d0d656c672bd2ed07052f5b81a891
parentf18e954626d1bf3d9e1d7666a35776b8296d967a
Make FSFS require FS version 3 for mergeinfo operations.

Specifically, with older filesystems, throw an error from
svn_fs_get_mergeinfo; don't write the mergeinfo metadata fields to
noderevs; and don't do various metadata maintenance steps.

* subversion/libsvn_fs_fs/fs.h
  (SVN_FS_FS__MIN_MERGEINFO_FORMAT): New.

* subversion/libsvn_fs_fs/fs_fs.c
  (svn_fs_fs__fs_supports_mergeinfo): New helper.
  (write_noderev_txn): New include_mergeinfo parameter controlling
   whether or not "minfo-count" and "minfo-here" are written.
  (svn_fs_fs__put_node_revision, write_final_rev): Adjust.

* subversion/libsvn_fs_fs/fs_fs.h
  (svn_fs_fs__fs_supports_mergeinfo): Declare.

* subversion/libsvn_fs_fs/structure
  Mention maintainance of minfo-here and minfo-count requires version 3.

* subversion/libsvn_fs_fs/tree.c
  (fs_change_node_prop, merge, fs_delete_node, copy_helper): Only do
   mergeinfo bookkeeping for new repository format.
  (fs_get_mergeinfo): Throw error if called with old repository.

git-svn-id: http://svn.collab.net/repos/svn/trunk@29280 612f8ebc-c883-4be0-9ee0-a4e9ef946e3a
subversion/libsvn_fs_fs/fs.h
subversion/libsvn_fs_fs/fs_fs.c
subversion/libsvn_fs_fs/fs_fs.h
subversion/libsvn_fs_fs/structure
subversion/libsvn_fs_fs/tree.c