diff --git a/lib/models/repository-states/present.js b/lib/models/repository-states/present.js index 195a4f55b3..6075a609fa 100644 --- a/lib/models/repository-states/present.js +++ b/lib/models/repository-states/present.js @@ -45,11 +45,7 @@ export default class Present extends State { } setCommitMessage(message) { - const oldMessage = this.commitMessage; this.commitMessage = message; - if (oldMessage !== message) { - this.didUpdate(); - } } getCommitMessage() { diff --git a/test/controllers/commit-controller.test.js b/test/controllers/commit-controller.test.js index c9ccbc3ccf..396b69c2dc 100644 --- a/test/controllers/commit-controller.test.js +++ b/test/controllers/commit-controller.test.js @@ -87,6 +87,16 @@ describe('CommitController', function() { assert.strictEqual(wrapper.find('CommitView').prop('message'), 'some message'); }); + it('does not cause the repository to update when commit message changes', function() { + repository.setCommitMessage('some message'); + const wrapper = shallow(app, {disableLifecycleMethods: true}).instance(); + sinon.spy(wrapper.props.repository.state, 'didUpdate'); + assert.strictEqual(wrapper.getCommitMessage(), 'some message'); + wrapper.handleMessageChange('new message'); + assert.strictEqual(wrapper.getCommitMessage(), 'new message'); + assert.isFalse(wrapper.props.repository.state.didUpdate.called); + }); + describe('when a merge message is defined', function() { it('is set to the merge message when merging', function() { app = React.cloneElement(app, {isMerging: true, mergeMessage: 'merge conflict!'});