1. 07 1月, 2016 1 次提交
  2. 25 12月, 2015 1 次提交
    • S
      Disable --follow in `git log` to avoid loading duplicate commit data in infinite scroll · ff8cd116
      Stan Hu 提交于
      `git` doesn't work properly when `--follow` and `--skip` are specified together. We could even be **omitting commits in the Web log** as a result.
      
      Here are the gory details. Let's say you ran:
      
      ```
      git log -n=5 --skip=2 README
      ```
      
      This is the working case since it omits `--follow`. This is what happens:
      
      1. `git` starts at `HEAD` and traverses down the tree until it finds the top-most commit relevant to README.
      2. Once this is found, this commit is returned via `get_revision_1()`.
      3. If the `skip_count` is positive, decrement and repeat step 2. Otherwise go onto step 4.
      4. `show_log()` gets called with that commit.
      5. Repeat step 1 until we have all five entries.
      
      That's exactly what we want. What happens when you use `--follow`? You have to understand how step 1 is performed:
      
      * When you specify a pathspec on the command-line (e.g. README), a flag `prune` [gets set here](https://github.com/git/git/blob/master/revision.c#L2351).
      * If the `prune` flag is active, `get_commit_action()` determines whether the commit should be [scanned for matching paths](https://github.com/git/git/blob/master/revision.c#L2989).
      * In the case of `--follow`, however, `prune` is [disabled here](https://github.com/git/git/blob/master/revision.c#L2350).
      * As a result, a commit is never scanned for matching paths and therefore never pruned. `HEAD` will always get returned as the first commit, even if it's not relevant to the README.
      * Making matters worse, the `--skip` in the example above would actually skip every other after `HEAD` N times. If README were changed in these skipped commits, we would actually miss information!
      
      Since git uses a matching algorithm to determine whether a file was renamed, I
      believe `git` needs to generate a diff of each commit to do this and traverse
      each commit one-by-one to do this. I think that's the rationale for disabling
      the `prune` functionality since you can't just do a simple string comparison.
      
      Closes #4181, #4229, #3574, #2410
      ff8cd116
  3. 18 12月, 2015 1 次提交
  4. 16 12月, 2015 1 次提交
    • J
      Fix diverging commit count calculation · 2e8ec7e7
      Jeff Stubler 提交于
      Rugged seemed to stop accepting branch names as valid refs, throwing `Rugged::ReferenceError` exceptions. Now the branch target rather than branch name is used, and the default branch's hash is also calculated, and these work properly.
      
      This used to work and might be something worth re-investigating in the future.
      2e8ec7e7
  5. 10 12月, 2015 1 次提交
  6. 08 12月, 2015 2 次提交
  7. 03 12月, 2015 1 次提交
  8. 01 12月, 2015 1 次提交
  9. 18 11月, 2015 3 次提交
  10. 16 11月, 2015 1 次提交
  11. 12 11月, 2015 1 次提交
  12. 04 11月, 2015 1 次提交
  13. 02 11月, 2015 2 次提交
  14. 29 10月, 2015 5 次提交
  15. 23 10月, 2015 2 次提交
  16. 21 10月, 2015 2 次提交
  17. 20 10月, 2015 2 次提交
  18. 16 10月, 2015 2 次提交
  19. 14 10月, 2015 2 次提交
  20. 07 10月, 2015 1 次提交
    • S
      Add directory feature button · 0ab6ca93
      Stan Hu 提交于
      Change "+" icon under "Files" section to have three options:
      
      * Create file
      * Upload file
      * New directory
      
      Upload file is no longer accessible from the "Create file" page.
      Users can now select a target branch in upload file as well.
      
      Closes #2799: Fixes a bug where file modes were overwritten after a commit
      
      Closes https://github.com/gitlabhq/gitlabhq/issues/8253: Existing files
      can no longer be overwritten in the "Create file" section.
      
      Closes #2557
      0ab6ca93
  21. 03 10月, 2015 1 次提交
  22. 17 8月, 2015 2 次提交
  23. 14 8月, 2015 3 次提交
  24. 13 8月, 2015 1 次提交