Fix "Revspec not found" errors when viewing diffs in a forked project with submodules
## What does this MR do?
This MR fixes an error that occurs when viewing diffs in a forked project with submodules.
### Are there points in the code the reviewer needs to double check?
Testing this code was tricky. The only way this problem shows up is if the origin project does NOT have the submodule update commit. The introduction of gitlab-test-fork serves that purpose: it contains a submodule update not present in gitlab-test.
### Why was this MR needed?
A user would receive a 500 error when trying to view a merge request with a submodule update. #1413 has details on how to reproduce this issue.
### What are the relevant issue numbers / [Feature requests](http://feedback.gitlab.com/)?
#1413
See merge request !512
Link cross-project cross-reference notes to correct project.
- Fixes#1431: Don't crash when an MR from a fork has a cross-reference comment from the target project on of its commits.
- Include commit comments in MR from a forked project.
To accomplish this, the Commit model needs to know about its project. Adding this attribute also simplifies a bunch of other methods that deal with a note's target, that previously had to have special logic for when it belonged to a commit.
See merge request !554
* Include creation time
* Include author without avatar
* Move assignee to the right
* Include comments counter by default, gray it out when there are 0
comments.
* Include creation time
* Include author without avatar
* Move assignee to the right
* Remove action buttons. IMO they are useless and a bit annoying
* Include comments counter by default, gray it out when there are 0
comments.
Fix label color input.
Because `value` was set, every label color would render as purple in the form.
Introduced by 83b5a9ae2b between 7.9 and 7.10, so no changelog item.
See merge request !538
Having a merge request with a comments on a line which is then changed
in a later commit prevented new comments from properly showing up in the
merge request show page.
* `Note#set_diff` do not use stored the diff when creating a new note
in merge requests (we can not be sure the diff did not changed since
the last comment on that line)
* Do not rely just on `outdated?` of the first note when displaying
comments of a MR in the discussion tab, but partition the
active/outdated notes and display them all
* In the inline changes tab just select the active notes, so an
outdated note does not prevent an active one from being rendered
* Just show active comments in the side-by-side changes tab