IndexSyncer contains most of the logic of cli/CommandUpdate, so it can be reused in the GUI where we need it too