Add Windows Hardlink & Symbolic Link Support #401
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Resolved an issue where
GHQ_ROOTdid not work correctly on Windows when it was a symbolic link or junction. (fix #402 )Issue
GHQ_ROOTis a symbolic link, theghq getcommand results in the error:The system cannot find the path specified.GHQ_ROOTis a symbolic link or junction, theghq listcommand does not return a list of repositories.Cause
filepath.EvalSymlinks()does not recognize symbolic links and junctions.Suggestion
os.Readlink()instead offilepath.EvalSymlinks()to follow links.os.Readlink()can handle symbolic links and junctions on Windows.Japanese
説明
Windowsにおいて、
GHQ_ROOTがシンボリックリンクもしくはジャンクションである場合に正しく動作しない問題を解決しました。問題
GHQ_ROOTがシンボリックリンクであった場合、ghq getコマンド実行時にThe system cannot find the path specified.というエラーが出るGHQ_ROOTがシンボリックリンクやジャンクションであった場合、ghq listコマンドを実行しても、リポジトリ一覧が返ってこない原因
filepath.EvalSymlinks()がシンボリックリンクやジャンクションを認識しないため。提案
filepath.EvalSymlinks()ではなく、os.Readlink()を使ってリンクを辿る実装に変更するos.Readlink()は、Windowsのシンボリックリンクとジャンクションを扱うことが可能