diff options
author | Phil Hughes <me@iamphill.com> | 2019-01-25 21:35:05 +0300 |
---|---|---|
committer | Phil Hughes <me@iamphill.com> | 2019-01-25 21:35:05 +0300 |
commit | 7c7916baee74e2532e77a94b84e8775a6a8dc2e5 (patch) | |
tree | 9b5dd216201fabf56d92d6e17c147f2974a02b35 /app | |
parent | bf2fe35e2d65583022828d61766f7e63ca7d2670 (diff) | |
parent | 1b93b3b640c6dd6377bdddb8beb77f7c3d0da3fc (diff) |
Merge branch 'osw-adjusts-suggestions-unable-to-be-applied' into 'master'
Adjusts suggestions unable to be applied
Closes #56690
See merge request gitlab-org/gitlab-ce!24603
Diffstat (limited to 'app')
-rw-r--r-- | app/assets/javascripts/notes/stores/actions.js | 11 | ||||
-rw-r--r-- | app/services/suggestions/apply_service.rb | 15 |
2 files changed, 14 insertions, 12 deletions
diff --git a/app/assets/javascripts/notes/stores/actions.js b/app/assets/javascripts/notes/stores/actions.js index 65f85314fa0..2105a62cecb 100644 --- a/app/assets/javascripts/notes/stores/actions.js +++ b/app/assets/javascripts/notes/stores/actions.js @@ -415,12 +415,13 @@ export const submitSuggestion = ( commit(types.APPLY_SUGGESTION, { discussionId, noteId, suggestionId }); callback(); }) - .catch(() => { - Flash( - __('Something went wrong while applying the suggestion. Please try again.'), - 'alert', - flashContainer, + .catch(err => { + const defaultMessage = __( + 'Something went wrong while applying the suggestion. Please try again.', ); + const flashMessage = err.response.data ? `${err.response.data.message}.` : defaultMessage; + + Flash(__(flashMessage), 'alert', flashContainer); callback(); }); }; diff --git a/app/services/suggestions/apply_service.rb b/app/services/suggestions/apply_service.rb index cc47b46b527..1f720fc835f 100644 --- a/app/services/suggestions/apply_service.rb +++ b/app/services/suggestions/apply_service.rb @@ -11,7 +11,7 @@ module Suggestions return error('Suggestion is not appliable') end - unless latest_diff_refs?(suggestion) + unless latest_source_head?(suggestion) return error('The file has been changed') end @@ -29,12 +29,13 @@ module Suggestions private - # Checks whether the latest diff refs for the branch matches with - # the position refs we're using to update the file content. Since - # the persisted refs are updated async (for MergeRequest), - # it's more consistent to fetch this data directly from the repository. - def latest_diff_refs?(suggestion) - suggestion.position.diff_refs == suggestion.noteable.repository_diff_refs + # Checks whether the latest source branch HEAD matches with + # the position HEAD we're using to update the file content. Since + # the persisted HEAD is updated async (for MergeRequest), + # it's more consistent to fetch this data directly from the + # repository. + def latest_source_head?(suggestion) + suggestion.position.head_sha == suggestion.noteable.source_branch_sha end def file_update_params(suggestion) |