~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/osutils.py

  • Committer: Vincent Ladeuil
  • Date: 2010-01-13 15:30:22 UTC
  • mfrom: (4935.1.3 472161-ftp-utf8)
  • mto: This revision was merged to the branch mainline in revision 4956.
  • Revision ID: v.ladeuil+lp@free.fr-20100113153022-1xkfjwo0uevmg1db
Better fix for fancy_rename respecting callers file encoding

Show diffs side-by-side

added added

removed removed

Lines of Context:
205
205
    :param unlink_func: A way to delete the target file if the full rename
206
206
        succeeds
207
207
    """
208
 
    new = safe_unicode(new)
209
208
    # sftp rename doesn't allow overwriting, so play tricks:
210
209
    base = os.path.basename(new)
211
210
    dirname = os.path.dirname(new)
212
 
    tmp_name = u'tmp.%s.%.9f.%d.%s' % (base, time.time(),
213
 
                                       os.getpid(), rand_chars(10))
 
211
    # callers use different encodings for the paths so the following MUST
 
212
    # respect that. We rely on python upcasting to unicode if new is unicode
 
213
    # and keeping a str if not.
 
214
    tmp_name = 'tmp.%s.%.9f.%d.%s' % (base, time.time(),
 
215
                                      os.getpid(), rand_chars(10))
214
216
    tmp_name = pathjoin(dirname, tmp_name)
215
217
 
216
218
    # Rename the file out of the way, but keep track if it didn't exist