Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • thg thg
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 829
    • Issues 829
    • List
    • Boards
    • Service Desk
    • Milestones
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • mercurial
  • TortoiseHg
  • thgthg
  • Issues
  • #5449
Closed
Open
Created Aug 22, 2019 by Bitbucket Importer@bitbucket_importerOwner

Diff between old revisions of file now in subrepo directory fails

Created originally on Bitbucket by James Oldfield

I am running TortoiseHg 5.0.2 on Windows 10 64-bit.

Steps:

  1. Create a file within a subdirectory of a repo, e.g. in MyRepo create MyRepo/Foo/bar/baz.cpp, and commit. Call this revision 1.
  2. Change that file and commit again. Call this revision 2.
  3. Delete that subdirectory, and replace with a subrepository. (In my case, the subrepo contains all the same files that were there before, but I don't think that's relevant.) Call this revision 3.
  4. In TortoiseHG Workbench, browse back to revision 2. Click on the file and you will see the diff successfully shown in the bottom right pane. But double click (or right click -> Diff to Parent) and you will get an error:

path 'MyRepo\Foo\bar\baz.cpp' is inside nested repo 'MyRepo\Foo'.

Here is the detail:

#!python
** Mercurial version (5.0.2).  TortoiseHg version (5.0.2)
** Command: 
** CWD: C:\Program Files\TortoiseHg
** Encoding: cp1252
** Extensions loaded: hggit, mercurial_keyring, shelve, strip, rebase, mq, tortoisehg.util.configitems
** Python version: 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:53:40) [MSC v.1500 64 bit (AMD64)]
** Windows version: sys.getwindowsversion(major=6, minor=2, build=9200, platform=2, service_pack='')
** Processor architecture: x64
** Qt-5.9.2 PyQt-5.9.1 QScintilla-2.10.2.dev1711012104
Traceback (most recent call last):
  File "tortoisehg\hgqt\revdetails.pyo", line 383, in onDoubleClick
  File "tortoisehg\hgqt\filectxactions.pyo", line 115, in wrapped
  File "tortoisehg\hgqt\filectxactions.pyo", line 289, in visualDiffFile
  File "tortoisehg\hgqt\filectxactions.pyo", line 299, in _visualDiffToBase
  File "tortoisehg\hgqt\filectxactions.pyo", line 308, in _visualDiff
  File "tortoisehg\hgqt\visdiff.pyo", line 239, in visualdiff
  File "mercurial\match.pyo", line 219, in match
  File "mercurial\match.pyo", line 265, in _donormalize
  File "mercurial\pathutil.pyo", line 192, in canonpath
  File "mercurial\pathutil.pyo", line 101, in __call__
  File "mercurial\pathutil.pyo", line 129, in _checkfs
Abort: path 'MyRepo\Foo\bar\baz.cpp' is inside nested repo 'MyRepo\\Foo'
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking