1. TortoiseHg
  2. TortoiseHg
  3. thg
  4. Issues
Issue #2387 open

shelve: Problem with files containing special characters at different OS working at the same repository

r_giera
created an issue

Committing files with special characters, like ü, ä, ö in German, causes to problems between Windows and Linux. TortoiseHG from the opposite OS shows these files as removed and added again. The OS from which the file have been comitted shows no modifications.

Committing these automatically preparated changes (in this case of reporting: Win7) (there are no real modifications at the files), causes to the error [Errno 84] "Ungültiges oder unvollständiges Multi-Byte- oder Wide-Zeichen: '<file>'" in the opposite OS (in this case of reporting: Ubuntu 11) at the same local repository located at FAT32. The error is displayed in the row of the working directory.

Then trying to perform a shelf command causes to the following bug report:

** Mercurial version (2.4.2).  TortoiseHg version (2.6.2)
** Command: log
** CWD: /home/rgiera
** Encoding: UTF-8
** Extensions loaded: bugzilla
** Python version: 2.7.2+ (default, Jul 20 2012, 22:15:08) [GCC 4.6.1]
** Qt-4.7.3 PyQt-4.8.5
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/tortoisehg/hgqt/workbench.py", line 859, in forwarder
    getattr(w, name)(*params, **namedparams)
  File "/usr/lib/python2.7/dist-packages/tortoisehg/hgqt/repowidget.py", line 696, in shelve
    dlg = shelve.ShelveDialog(self.repo, self)
  File "/usr/lib/python2.7/dist-packages/tortoisehg/hgqt/shelve.py", line 192, in __init__
    self.refreshCombos()
  File "/usr/lib/python2.7/dist-packages/tortoisehg/hgqt/shelve.py", line 421, in refreshCombos
    self.comboAChanged(idxa)
  File "/usr/lib/python2.7/dist-packages/tortoisehg/hgqt/shelve.py", line 440, in comboAChanged
    self.browsea.setContext(self.repo.changectx(rev))
  File "/usr/lib/python2.7/dist-packages/tortoisehg/hgqt/chunks.py", line 448, in setContext
    empty = len(ctx.files()) == 0
  File "/usr/lib/python2.7/dist-packages/mercurial/context.py", line 908, in files
    return sorted(self._status[0] + self._status[1] + self._status[2])
  File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 246, in __get__
    result = self.func(obj)
  File "/usr/lib/python2.7/dist-packages/mercurial/context.py", line 866, in _status
    return self._repo.status()[:4]
  File "/usr/lib/python2.7/dist-packages/mercurial/localrepo.py", line 1573, in status
    listclean, listunknown)
  File "/usr/lib/python2.7/dist-packages/mercurial/dirstate.py", line 755, in status
    listignored).iteritems():
  File "/usr/lib/python2.7/dist-packages/mercurial/dirstate.py", line 701, in walk
    for nf, st in zip(visit, util.statfiles([join(i) for i in visit])):
  File "/usr/lib/python2.7/dist-packages/mercurial/posix.py", line 360, in statfiles
    st = lstat(nf)
OSError: [Errno 84] Ungültiges oder unvollständiges Multi-Byte- oder Wide-Zeichen: '/media/Data HDD2/SIB/Development/workspaces_eclipse/wsp_sib_hg/raptor/data/KBs/VW/Media/Doc/VW_Golf_2009_5K1_Aus-&Einbau_Fensterf\xfchrung.pdf'
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/tortoisehg/hgqt/chunks.py", line 144, in timerEvent
    ctx = self.ctx
AttributeError: 'ChunksWidget' object has no attribute 'ctx'
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/tortoisehg/hgqt/chunks.py", line 144, in timerEvent
    ctx = self.ctx
AttributeError: 'ChunksWidget' object has no attribute 'ctx'

Then clicking OK causes to the next bug report, which occurs again and again on clicking OK:

** Mercurial version (2.4.2).  TortoiseHg version (2.6.2)
** Command: log
** CWD: /home/rgiera
** Encoding: UTF-8
** Extensions loaded: bugzilla
** Python version: 2.7.2+ (default, Jul 20 2012, 22:15:08) [GCC 4.6.1]
** Qt-4.7.3 PyQt-4.8.5
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/tortoisehg/hgqt/chunks.py", line 144, in timerEvent
    ctx = self.ctx
AttributeError: 'ChunksWidget' object has no attribute 'ctx'
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/tortoisehg/hgqt/chunks.py", line 144, in timerEvent
    ctx = self.ctx
AttributeError: 'ChunksWidget' object has no attribute 'ctx'

Only Quit helps to terminate the loop.

Comments (5)

  1. r_giera reporter

    (Reply via r.gi...@googlemail.com):

    Hi Steve,

    I think, it doesn't make any sense. I don't have this problem in Windows. The problem occurs in Linux on using a Windows repository. The linux repository which contains the same changesets (pulled from that Windows repository) has no problems in TortoiseHG.

    If the problem (errno 84) occurs the complete TortoiseHG is in a unstaible mode.

    Ronny

    Am 29.01.2013 18:01, schrieb Steve Borho:

  2. Log in to comment