Commit Diff


commit - 455f928e1e14791531139b0815e1b1b1355b76b9
commit + 6e210706a4224007cf266b48c28e5a54e8279589
blob - 686148327a8e13cf481ef62f03fe15ba6a6841d0
blob + e81fcf0f255ee6dd35a283cf1c758066903935f0
--- lib/worktree.c
+++ lib/worktree.c
@@ -7108,6 +7108,10 @@ got_worktree_integrate_continue(struct got_worktree *w
 		goto sync;
 
 	err = got_ref_write(base_branch_ref, repo);
+	if (err)
+		goto sync;
+
+	err = bump_base_commit_id_everywhere(worktree, fileindex, NULL, NULL);
 sync:
 	sync_err = sync_fileindex(fileindex, fileindex_path);
 	if (sync_err && err == NULL)
blob - 8cf8d28bfed42a087f2050d143b3c2b39d1bb6a5
blob + 603d7296146a6348c4964490d45c51c943f89e96
--- regress/cmdline/integrate.sh
+++ regress/cmdline/integrate.sh
@@ -132,6 +132,16 @@ test_integrate_basic() {
 		> $testroot/stdout.expected
 	echo "commit $new_commit1" >> $testroot/stdout.expected
 	echo "commit $master_commit" >> $testroot/stdout.expected
+	cmp -s $testroot/stdout.expected $testroot/stdout
+	ret="$?"
+	if [ "$ret" != "0" ]; then
+		diff -u $testroot/stdout.expected $testroot/stdout
+		test_done "$testroot" "$ret"
+		return 1
+	fi
+
+	(cd $testroot/wt && got update > $testroot/stdout)
+	echo "Already up-to-date" > $testroot/stdout.expected
 	cmp -s $testroot/stdout.expected $testroot/stdout
 	ret="$?"
 	if [ "$ret" != "0" ]; then