+ var hsh string
+ if hshPrev != "" {
+ _, err = fd.Seek(0, io.SeekStart)
+ if err != nil {
+ goto Finish
+ }
+ hsh, err = fileHash(fd)
+ if err != nil {
+ goto Finish
+ }
+ if hsh == hshPrev {
+ tracef(CDebug, "%s has same hash, not renaming", tgtOrig)
+ err = os.Remove(fd.Name())
+ if err != nil {
+ goto Finish
+ }
+ err = os.Chtimes(path.Join(cwdOrig, tgt), finished, finished)
+ if err != nil {
+ goto Finish
+ }
+ if !NoSync {
+ err = syncDir(cwdOrig)
+ if err != nil {
+ goto Finish
+ }
+ }
+ err = depWrite(fdDep, cwdOrig, tgt, hshPrev)
+ if err != nil {
+ goto Finish
+ }
+ goto RecCommit
+ }
+ }