diff -r 44a371823f83 -r 3ecce805ac13 hgext/largefiles/lfcommands.py --- a/hgext/largefiles/lfcommands.py Wed Jan 11 15:38:31 2012 +0100 +++ b/hgext/largefiles/lfcommands.py Wed Jan 11 16:53:51 2012 +0100 @@ -375,7 +375,15 @@ toget = [] for lfile in lfiles: - expectedhash = repo[node][lfutil.standin(lfile)].data().strip() + # If we are mid-merge, then we have to trust the standin that is in the + # working copy to have the correct hashvalue. This is because the + # original hg.merge() already updated the standin as part of the normal + # merge process -- we just have to udpate the largefile to match. + if getattr(repo, "_ismerging", False): + expectedhash = lfutil.readstandin(repo, lfile) + else: + expectedhash = repo[node][lfutil.standin(lfile)].data().strip() + # if it exists and its hash matches, it might have been locally # modified before updating and the user chose 'local'. in this case, # it will not be in any store, so don't look for it.