Hi,Junio, I try to reslove this issue,but there may be a little change in my approach: > - At the beginning, see if $GIT_DIR/difftool-skip-to file exists. > > - If exists, read its contents. > Which have been read now we called it "SAVE_POINT_NUM". And then,divided into two situations: If the index of the file($GIT_DIFF_PATH_COUNTER)we are viewing is 1,if $SAVE_POINT_NUM larger than $GIT_DIFF_PATH_COUNTER, ask users if they want to skip to last time save point $SAVE_POINT_NUM: if the answer is no,we continue show difftool of first file; if the answer is yes,we `return`. If the index of the file we are viewing is large than 1,we just check the if $SAVE_POINT_NUM large than $GIT_DIFF_PATH_COUNTER,if true, `return` ;if false,we continue show difftool of files. And everytime before we view the diff,we save the $GIT_DIFF_PATH_COUNTER to $GIT_DIR/difftool-skip-to. > - Remove that file (we are at the 15th path and done skipping). finally,when success viewed last file diff,we delete the `$GIT_DIR/difftool-skip-to`. > > - Update the "Viewing .../ Launch?" prompt and offer another choice > "Skip to?". > > - Update the if/then/fi statement that processes the answer to the > prompt (right now, it takes n as a sign to skip the file). When > the user says "skip to 15th", create $GIT_DIR/difftool-skip-to > file and record "15" in it and 'return'. When we were at an index in the middle, I didn't think there was any good way to go back to the previous index, so I didn't deal with random jumping. After all, this question focuses on the save point of the last exit. I have a question: If the user has two different `git difftool` (e.g. first time user call `git difftool HEAD~` and exits midway, second time call `git difftool HEAD~2`, the "GIT_DIR/difftool-skip-to " still exists), I did not do the consistency check for the two. But this is not a big hindrance, because the user can choose not to skip before viewing the first file. My patch will send soon. If there are errors or omissions in my thinking,please tell me,thanks.