reset.c: move lock, write and commit out of update_index_refresh()

In preparation for the/a following patch, move the locking, writing
and committing of the index file out of update_index_refresh(). The
code duplication caused will soon be taken care of. What remains of
update_index_refresh() is just one line, but it is still called from
two places, so let's leave it for now.

In the process, we expose and fix the minor UI bug that makes us print
"Could not refresh index" when we fail to write the index file when
invoked with a pathspec. Copy the error message from the pathspec-less
codepath ("Could not write new index file.").

Signed-off-by: Martin von Zweigbergk <martinvonz@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 file changed
tree: f5e8f8b95e5015dab9b229f48a566a67d34bf5eb
  1. block-sha1/
  2. builtin/
  3. compat/
  4. contrib/
  5. Documentation/
  6. git-gui/
  7. git_remote_helpers/
  8. gitk-git/
  9. gitweb/
  10. mergetools/
  11. perl/
  12. po/
  13. ppc/
  14. t/
  15. templates/
  16. vcs-svn/
  17. xdiff/
  18. .gitattributes
  19. .gitignore
  20. .mailmap
  21. abspath.c
  22. aclocal.m4
  23. advice.c
  24. advice.h
  25. alias.c
  26. alloc.c
  27. archive-tar.c
  28. archive-zip.c
  29. archive.c
  30. archive.h
  31. argv-array.c
  32. argv-array.h
  33. attr.c
  34. attr.h
  35. base85.c
  36. bisect.c
  37. bisect.h
  38. blob.c
  39. blob.h
  40. branch.c
  41. branch.h
  42. builtin.h
  43. bulk-checkin.c
  44. bulk-checkin.h
  45. bundle.c
  46. bundle.h
  47. cache-tree.c
  48. cache-tree.h
  49. cache.h
  50. check-builtins.sh
  51. check-racy.c
  52. check_bindir
  53. color.c
  54. color.h
  55. column.c
  56. column.h
  57. combine-diff.c
  58. command-list.txt
  59. commit.c
  60. commit.h
  61. config.c
  62. config.mak.in
  63. configure.ac
  64. connect.c
  65. connected.c
  66. connected.h
  67. convert.c
  68. convert.h
  69. copy.c
  70. COPYING
  71. credential-cache--daemon.c
  72. credential-cache.c
  73. credential-store.c
  74. credential.c
  75. credential.h
  76. csum-file.c
  77. csum-file.h
  78. ctype.c
  79. daemon.c
  80. date.c
  81. decorate.c
  82. decorate.h
  83. delta.h
  84. diff-delta.c
  85. diff-lib.c
  86. diff-no-index.c
  87. diff.c
  88. diff.h
  89. diffcore-break.c
  90. diffcore-delta.c
  91. diffcore-order.c
  92. diffcore-pickaxe.c
  93. diffcore-rename.c
  94. diffcore.h
  95. dir.c
  96. dir.h
  97. editor.c
  98. entry.c
  99. environment.c
  100. exec_cmd.c
  101. exec_cmd.h
  102. fast-import.c
  103. fetch-pack.c
  104. fetch-pack.h
  105. fixup-builtins
  106. fmt-merge-msg.h
  107. fsck.c
  108. fsck.h
  109. generate-cmdlist.sh
  110. gettext.c
  111. gettext.h
  112. git-add--interactive.perl
  113. git-am.sh
  114. git-archimport.perl
  115. git-bisect.sh
  116. git-compat-util.h
  117. git-cvsexportcommit.perl
  118. git-cvsimport.perl
  119. git-cvsserver.perl
  120. git-difftool--helper.sh
  121. git-difftool.perl
  122. git-filter-branch.sh
  123. git-instaweb.sh
  124. git-lost-found.sh
  125. git-merge-octopus.sh
  126. git-merge-one-file.sh
  127. git-merge-resolve.sh
  128. git-mergetool--lib.sh
  129. git-mergetool.sh
  130. git-p4.py
  131. git-parse-remote.sh
  132. git-pull.sh
  133. git-quiltimport.sh
  134. git-rebase--am.sh
  135. git-rebase--interactive.sh
  136. git-rebase--merge.sh
  137. git-rebase.sh
  138. git-relink.perl
  139. git-remote-testgit
  140. git-remote-testpy.py
  141. git-repack.sh
  142. git-request-pull.sh
  143. git-send-email.perl
  144. git-sh-i18n.sh
  145. git-sh-setup.sh
  146. git-stash.sh
  147. git-submodule.sh
  148. git-svn.perl
  149. GIT-VERSION-GEN
  150. git-web--browse.sh
  151. git.c
  152. git.spec.in
  153. gpg-interface.c
  154. gpg-interface.h
  155. graph.c
  156. graph.h
  157. grep.c
  158. grep.h
  159. hash.c
  160. hash.h
  161. help.c
  162. help.h
  163. hex.c
  164. http-backend.c
  165. http-fetch.c
  166. http-push.c
  167. http-walker.c
  168. http.c
  169. http.h
  170. ident.c
  171. imap-send.c
  172. INSTALL
  173. kwset.c
  174. kwset.h
  175. levenshtein.c
  176. levenshtein.h
  177. LGPL-2.1
  178. list-objects.c
  179. list-objects.h
  180. ll-merge.c
  181. ll-merge.h
  182. lockfile.c
  183. log-tree.c
  184. log-tree.h
  185. mailmap.c
  186. mailmap.h
  187. Makefile
  188. match-trees.c
  189. merge-file.c
  190. merge-file.h
  191. merge-recursive.c
  192. merge-recursive.h
  193. merge.c
  194. mergesort.c
  195. mergesort.h
  196. name-hash.c
  197. notes-cache.c
  198. notes-cache.h
  199. notes-merge.c
  200. notes-merge.h
  201. notes.c
  202. notes.h
  203. object.c
  204. object.h
  205. pack-check.c
  206. pack-refs.c
  207. pack-refs.h
  208. pack-revindex.c
  209. pack-revindex.h
  210. pack-write.c
  211. pack.h
  212. pager.c
  213. parse-options-cb.c
  214. parse-options.c
  215. parse-options.h
  216. patch-delta.c
  217. patch-ids.c
  218. patch-ids.h
  219. path.c
  220. pkt-line.c
  221. pkt-line.h
  222. preload-index.c
  223. pretty.c
  224. progress.c
  225. progress.h
  226. prompt.c
  227. prompt.h
  228. quote.c
  229. quote.h
  230. reachable.c
  231. reachable.h
  232. read-cache.c
  233. README
  234. reflog-walk.c
  235. reflog-walk.h
  236. refs.c
  237. refs.h
  238. remote-curl.c
  239. remote-testsvn.c
  240. remote.c
  241. remote.h
  242. replace_object.c
  243. rerere.c
  244. rerere.h
  245. resolve-undo.c
  246. resolve-undo.h
  247. revision.c
  248. revision.h
  249. run-command.c
  250. run-command.h
  251. send-pack.c
  252. send-pack.h
  253. sequencer.c
  254. sequencer.h
  255. server-info.c
  256. setup.c
  257. sh-i18n--envsubst.c
  258. sha1-array.c
  259. sha1-array.h
  260. sha1-lookup.c
  261. sha1-lookup.h
  262. sha1_file.c
  263. sha1_name.c
  264. shallow.c
  265. shell.c
  266. shortlog.h
  267. show-index.c
  268. sideband.c
  269. sideband.h
  270. sigchain.c
  271. sigchain.h
  272. strbuf.c
  273. strbuf.h
  274. streaming.c
  275. streaming.h
  276. string-list.c
  277. string-list.h
  278. submodule.c
  279. submodule.h
  280. symlinks.c
  281. tag.c
  282. tag.h
  283. tar.h
  284. test-chmtime.c
  285. test-ctype.c
  286. test-date.c
  287. test-delta.c
  288. test-dump-cache-tree.c
  289. test-genrandom.c
  290. test-index-version.c
  291. test-line-buffer.c
  292. test-match-trees.c
  293. test-mergesort.c
  294. test-mktemp.c
  295. test-parse-options.c
  296. test-path-utils.c
  297. test-regex.c
  298. test-revision-walking.c
  299. test-run-command.c
  300. test-scrap-cache-tree.c
  301. test-sha1.c
  302. test-sha1.sh
  303. test-sigchain.c
  304. test-string-list.c
  305. test-subprocess.c
  306. test-svn-fe.c
  307. thread-utils.c
  308. thread-utils.h
  309. trace.c
  310. transport-helper.c
  311. transport.c
  312. transport.h
  313. tree-diff.c
  314. tree-walk.c
  315. tree-walk.h
  316. tree.c
  317. tree.h
  318. unimplemented.sh
  319. unix-socket.c
  320. unix-socket.h
  321. unpack-trees.c
  322. unpack-trees.h
  323. upload-pack.c
  324. url.c
  325. url.h
  326. usage.c
  327. userdiff.c
  328. userdiff.h
  329. utf8.c
  330. utf8.h
  331. varint.c
  332. varint.h
  333. version.c
  334. version.h
  335. walker.c
  336. walker.h
  337. wrap-for-bin.sh
  338. wrapper.c
  339. write_or_die.c
  340. ws.c
  341. wt-status.c
  342. wt-status.h
  343. xdiff-interface.c
  344. xdiff-interface.h
  345. zlib.c