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

Support file property which indicates that commit must be manually forced



    • New Feature
    • Status: Open
    • Major
    • Resolution: Unresolved
    • trunk
    • blue-sky
    • libsvn_wc


      Users sometimes run into situations where they have files they wish to keep
      under version control but in which they need to maintain perpetual, uncommitted
      local modifications in their working copy.  
      I have such a use-case myself.  I have a Drupal configuration file which I want
      to keep versioned with the rest of the Drupal code deployed for my site.  The
      site is deployed from a Subversion working copy, and the configuration file has
      local mods in that working copy which add sensitive information (SQL
      user/password info).  I don't want to accidentally commit that file because if I
      do so, that sensitive data is now effectively publicized, and I've got to go
      about changing the SQL user password.
      Some have suggested that svn:ignore grow to meet this need.  I oppose such a
      move for various reasons (svn:ignore is set on a directory, not on the protected
      thing itself; "ignore" is a strong verb that would imply to the unlearned that
      Subversion does nothing with the file -- commit, update, status, log, ...; and
      so on).  But I do support the idea of Subversion growing a new property, more
      similar to svn:needs-lock than to svn:ignore, which indicates that user has to
      work a little harder to commit that file.  "Harder" is undefined at this
      junction, but could mean:
         "The file must be explicitly named in the commit command-line" (though this
         is probably a non-starter for TortoiseSVN users, where *every* committed
         thing is named explicitly).
         "The commit may only change file properties" (so that a user could
         temporarily remove this blocking property, then commit their file, 
         then reset the property ... but all that is a horrid user experience).
         "The commit must use --force (or some variant thereof)."


        Issue Links



              Unassigned Unassigned
              cmpilato C. Michael Pilato
              2 Vote for this issue
              2 Start watching this issue