[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Log message problem on 1.9.5

From: pegacorn <subscriber.jp_at_gmail.com>
Date: Sun, 11 Dec 2016 00:05:10 +0900 (JST)

From: Hiroyuki Matsumura <pine.matsumura_at_gmail.com>
 Subject: RE: Re: Log message problem on 1.9.5
 Date: Thu, 1 Dec 2016 19:30:17 -0800 (PST)
/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Again there is a problem with the Show Log of 1.9.5.
>
> * The "Want to go offline?" message is displayed in several work folders. (some work folder is OK.)
> * Forcibly go offline in some work folders. (some work folder is OK.)
>
> It is displayed normally in 1.9.4.

# This sentence is machine translated. If you can understand Japanese, please read the second half Japanese (Original).

I also faced a similar problem, so I checked the conditions under which the problem occurred.
Problem seems to occur if the following conditions are satisfied.

- The repository name contains characters that need a percent escape
 and
- The name of the directory/file to be managed contains non-ASCII characters

Example:
  ok file:///D:/tmp/test repo/Hello world/Hello world.txt
  NG file:///D:/tmp/test repo/Hello world/こんにちは.txt
  NG file:///D:/tmp/test repo/こんにちは世界/Hello.txt

Repository name and path name of pine_matsu report also seem to satisfy these conditions.

Also, problems will occur with local drives or http schemes.
Problems also occur not only in displaying logs but also in displaying differences.
There is no problem with the svn command.

If you believe in the URL displayed in the error message, the repository name is doubly percent escaped.
The following is the contents of the error message displayed when displaying the difference.
> [Window Title]
> TortoiseSVN
>
> [Main Instruction]
> Subversionのエラー報告:
>
> [Content]
> Unable to connect to a repository at URL
> 'file:///D:/tmp/test%2520repo/Hello%20world/%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF.txt'
> リポジトリ
> 'file:///D:/tmp/test%2520repo/Hello%20world/%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF.txt'
> を開けませんでした
>
> [閉じる(C)]

I suspected changing the URL escape processing in revision 27555, but I could not find a problem.
> Revision: 27555
> Author: steveking
> Date: 2016年11月15日 4:57:53
> Message:
> Merged revision(s) r27546, r27547, r27548, r27554 from trunk:
> * Extend the IsValidOnWindows() regex to catch double protocols in URLs.
> * Follow-up to r27546: extend the regex to catch more double-protocol URLs.
> * Always show the "to" url unescaped, even if the "from" url is escaped.
> * When escaping a path, remember if a char has been escaped and if one was, also escape all subsequent '%' chars.
>
> ----
> Modified : /branches/1.9.x
> Modified : /branches/1.9.x/src
> Modified : /branches/1.9.x/src/Utils/PathUtils.cpp
> Modified : /branches/1.9.x/src/SVN/TSVNPath.cpp
> Modified : /branches/1.9.x/src/Changelog.txt
> Modified : /branches/1.9.x/src/TortoiseProc/CopyDlg.cpp

The following is a sentence in Japanese (Original).
以下は日本語(原文)の文章です。

私も同様の問題に直面したので、問題が起きる条件を調べてみました。
以下の条件を満たすと問題が起きるようです。

・リポジトリ名にパーセントエスケープが必要な文字を含んでいる
 かつ
・管理するディレクトリ/ファイルの名前に非ASCII文字を含んでいる

例:
  ok file:///D:/tmp/test repo/Hello world/Hello world.txt
  NG file:///D:/tmp/test repo/Hello world/こんにちは.txt
  NG file:///D:/tmp/test repo/こんにちは世界/Hello.txt

pine_matsuさん報告のリポジトリ名とパス名も、これらの条件を満たしているようです。

また、ローカルドライブでもhttpスキームでも問題が起きます。
ログの表示だけでなく差分の表示などでも問題が起きます。
svnコマンドでは問題は起きません。

エラーメッセージ中に表示されるURLを信じるなら、リポジトリ名が2重にパーセントエスケープされています。
以下は差分の表示の時に表示されるエラーメッセージの内容です。
> [Window Title]
> TortoiseSVN
>
> [Main Instruction]
> Subversionのエラー報告:
>
> [Content]
> Unable to connect to a repository at URL
> 'file:///D:/tmp/test%2520repo/Hello%20world/%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF.txt'
> リポジトリ
> 'file:///D:/tmp/test%2520repo/Hello%20world/%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF.txt'
> を開けませんでした
>
> [閉じる(C)]

リビジョン27555でのURLのエスケープ処理の変更を疑いましたが、問題は見つけられませんでした。
> Revision: 27555
> Author: steveking
> Date: 2016年11月15日 4:57:53
> Message:
> Merged revision(s) r27546, r27547, r27548, r27554 from trunk:
> * Extend the IsValidOnWindows() regex to catch double protocols in URLs.
> * Follow-up to r27546: extend the regex to catch more double-protocol URLs.
> * Always show the "to" url unescaped, even if the "from" url is escaped.
> * When escaping a path, remember if a char has been escaped and if one was, also escape all subsequent '%' chars.
>
> ----
> Modified : /branches/1.9.x
> Modified : /branches/1.9.x/src
> Modified : /branches/1.9.x/src/Utils/PathUtils.cpp
> Modified : /branches/1.9.x/src/SVN/TSVNPath.cpp
> Modified : /branches/1.9.x/src/Changelog.txt
> Modified : /branches/1.9.x/src/TortoiseProc/CopyDlg.cpp

-- 
pegacorn
------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=3196699
To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2016-12-10 17:05:22 CET

This is an archived mail posted to the TortoiseSVN Users mailing list.