Uploaded image for project: 'Subversion'
  1. Subversion
  2. SVN-702

error code space fragmentation

    XMLWordPrintableJSON

Details

    • Task
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • all
    • 0.14.2
    • src

    Description

      Because subversion has a universal collection of error codes that applies to
      both the client and server sides, it is important that the errors codes (which
      are transmitted by their numeric value) be as reasonalbe in-sync between those
      two sides as possible.  That means, we should expect that any client of a given
      Major version number should be able to communicate with any server of the same
      Major version number, and their codes not be misaligned.
      
      To accomplish this, two things need to occur:
      
      -  The error codes in svn_error_codes.h need to be fragmented by their general
      module, to create separate "spaces" for those codes with room for addition of
      new codes in each module "space".  For example:
      
         ...
         #define SVN_WC_BASE_ERROR  (SVN_BASE_ERROR + 100)
         #define SVN_FS_BASE_ERROR  (SVN_BASE_ERROR + 200)
         ...
         #define SVN_FS_NO_SUCH_REPRESENTATION (SVN_FS_BASE_ERROR + 15)
         ...
      
      -  Secondly, policy needs to exist (and be enforced) that we do everything
      possible to keep error codes in their respective places in the overall ID space.
       So when an error code is removed, it is simply replaced with a value that means
      "there's an empty slot here."  And new codes added to a module's error space go
      into the first empty slot in that space.
      
      [Obviously, completion of this issue is deemed as having accomplished the code
      space fragmentation only, since the policy-driven use of those spaces will go on
      ... forever!]
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            cmpilato C. Michael Pilato
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: