• 
      

    Fix for commits without a parent not returning a diff

    Review Request #7054 — Created March 12, 2015 and submitted

    Information

    rb-gateway
    master
    023801e...

    Reviewers

    Currently, the route /repos/{repo}/commits/{id} will not return a diff if the commit has no parent. This fixes that.

    Made sure that a diff is returned even when the commit has no parent.

    Description From Last Updated

    What happens in the case where there are multiple parents (i.e., a merge commit)? If we aren't going to support …

    brenniebrennie

    I don't know if this is against gofmt but can you align the parameters like we do in Python, e.g. …

    brenniebrennie

    Can this be refactored so that we only have one call of gitRepo.DiffTreeToTree (after the if/else)?

    brenniebrennie
    reviewbot
    1. Tool: PEP8 Style Checker
      Ignored Files:
          git_repository.go
      
      
      
      Tool: Pyflakes
      Ignored Files:
          git_repository.go
      
      
    2. 
        
    brennie
    1. 
        
    2. git_repository.go (Diff revision 1)
       
       
      Show all issues

      What happens in the case where there are multiple parents (i.e., a merge commit)? If we aren't going to support this we should error out somehow (that doesn't break RB).

      1. I believe I saw that you discussed this in Slack, but this should be OK.

    3. git_repository.go (Diff revision 1)
       
       
       
      Show all issues

      I don't know if this is against gofmt but can you align the parameters like we do in Python, e.g.

      gitRepo.DiffTreeToTree(parentTree,
                             commitTree,
                             &diffOptions)
      

      If this is against gofmt, please drop this issue.

      1. I prefer the Python way too but it seems this is the best I can do with gofmt, not sure which is preferable:

            gitDiff, err := gitRepo.DiffTreeToTree(
                parentTree,
                commitTree,
                &diffOptions)
        
      2. Oh I should also mention that Go has no line limit, but I've been trying to wrap at 80.

      3. I think if we wrap any arguments, we should wrap all of them (meaning your "best I can do" is preferable).

    4. 
        
    Chester
    1. I am interested in the path, is it for github only? or all git repositories in general? Because paths might vary in different git services.

      1. By path do you mean /repos/{repo}/commits/{id}? This is the URL route at http://<service>/repo/{repo}/commits/{id}. rb-gateway provides a service and there is only the API at this URL path to get the commits. I don't communicate with GitHub, nor is this URL path tied closely with git. Based on what kind of repository {repo} is in the rb-gateway configurations, the request will be handled appropriately. Hope that makes sense.

      2. oh ok, maybe it would be nicer if you say this is for rb-gateway in yor summary or description specifically. By the way, the error comes up when I fetch the diff for the first commit from GitLab repository.

      3. The repository on each review request is visible in the repository field; in this case, it is rb-gateway. This information is available on the dashboard and on the all review requests page. Also, including the repository name in the summary/description will end up with it carried over to commits in the repositories, which would be redundant.

    2. 
        
    JY
    reviewbot
    1. Tool: PEP8 Style Checker
      Ignored Files:
          git_repository.go
      
      
      
      Tool: Pyflakes
      Ignored Files:
          git_repository.go
      
      
    2. 
        
    brennie
    1. One minor refactor and then I say we Ship it!

    2. git_repository.go (Diff revision 2)
       
       
       
       
       
       
       
      Show all issues

      Can this be refactored so that we only have one call of gitRepo.DiffTreeToTree (after the if/else)?

    3. 
        
    JY
    reviewbot
    1. Tool: PEP8 Style Checker
      Ignored Files:
          git_repository.go
      
      
      
      Tool: Pyflakes
      Ignored Files:
          git_repository.go
      
      
    2. 
        
    david
    1. Ship It!
    2. 
        
    JY
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to master (af687e0)