1. 06 10月, 2016 1 次提交
    • M
      multi-file commit · a1ee8cf5
      Marc Siegfriedt 提交于
      add docs and tests - add additional validation
      allow move without content
      updated response
      a1ee8cf5
  2. 20 9月, 2016 1 次提交
  3. 15 8月, 2016 1 次提交
    • F
      Prevents accidental overwrites of commits from UI · ade0c2c8
      Frank West 提交于
      Currently when a user performs an update of a file through the UI  and there
      has already been a change committed to the file the previous commits will be
      overwritten without a check to see if the file has been changed.
      
      This commit uses the last commit sha at the time the user starts editing the
      file and compares it with the current sha of the file being edited to ensure
      they are the same before committing the file. If the shas do not match we
      throw an exception preventing the commit from the commit from occurring.
      
      Fixes #5857
      ade0c2c8
  4. 18 7月, 2016 1 次提交
  5. 14 7月, 2016 1 次提交
  6. 13 7月, 2016 1 次提交
    • T
      Refactor `Gitlab::GitAccess` · 60245bbe
      Timothy Andrew 提交于
      1. Don't use case statements for dispatch anymore. This leads to a lot
         of duplication, and makes the logic harder to follow.
      
      2. Remove duplicated logic.
      
          - For example, the `can_push_to_branch?` exists, but we also have a
            different way of checking the same condition within `change_access_check`.
      
          - This kind of duplication is removed, and the `can_push_to_branch?`
            method is used in both places.
      
      3. Move checks returning true/false to `UserAccess`.
      
          - All public methods in `GitAccess` now return an instance of
            `GitAccessStatus`. Previously, some methods would return
            true/false as well, which was confusing.
      
          - It makes sense for these kinds of checks to be at the level of a
            user, so the `UserAccess` class was repurposed for this. The prior
            `UserAccess.allowed?` classmethod is converted into an instance
            method.
      
          - All external uses of these checks have been migrated to use the
            `UserAccess` class
      
      4. Move the "change_access_check" into a separate class.
      
          - Create the `GitAccess::ChangeAccessCheck` class to run these
            checks, which are quite substantial.
      
          - `ChangeAccessCheck` returns an instance of `GitAccessStatus` as
            well.
      
      5. Break out the boolean logic in `ChangeAccessCheck` into `if/else`
         chains - this seems more readable.
      
      6. I can understand that this might look like overkill for !4892, but I
         think this is a good opportunity to clean it up.
      
          - http://martinfowler.com/bliki/OpportunisticRefactoring.html
      60245bbe
  7. 12 7月, 2016 29 次提交
  8. 08 7月, 2016 5 次提交