JenkinsでTFSソース取得時にエラー（renaming: target file already exists）が発生した際の対応

# 作業の背景
- TFSからのソースチェックアウト時にエラーが出るようになった
- パスが長くなりすぎているのが原因のよう
- ホームディレクトリを変更してパスを短くする

# 環境
- Jenkins 2.289.3
- Team Foundation Server Plug-in 5.157.1
- Windows Server 2016 Standard

# 事前作業
- 現在のホームディレクトリを確認する
Jenkinsの管理　＞　システムの設定
→　C:\Windows\system32\config\systemprofile\AppData\Local\Jenkins\\.jenkins
- ディスクサイズを確認する（一時的にホームディレクトリが二重になるため）

# 作業手順
1. サービスを停止する
1. ディレクトリを作成する
C:\Jenkins-home　（任意）
1. システム環境変数を登録する
→　JENKINS_HOME=C:\Jenkins-home\\.jenkins　（任意）
1. ディレクトリのコピー
.jenkinsディレクトリのサイズ確認
.jenkinsディレクトリのコピー
→　C:\Jenkins-home\.jenkins　へ
.jenkinsディレクトリのリネーム（バックアップ用）
→　任意の名前
1. C:\Program Files\Jenkins\jenkins.xmlのリネーム（バックアップ用）
→　任意の名前
1. jenkins.xmlの編集
→　JENKINS_HOMEの値を　C:\Jenkins-home\\.jenkins　に変更
1. サービスを起動する
1. 設定内容を確認する
ホームディレクトリが変わっていること
ビルドが動作すること

# 後始末
1. リネームしたバックアップ用.jenkinsディレクトリを削除する

# 参考
- https://issues.jenkins.io/browse/JENKINS-43947
- https://phoenixnap.com/kb/change-jenkins-home-directory

# ソース取得時のエラー
> Getting version 'C67715' to 'C:\Windows\system32\config\systemprofile\AppData\Local\Jenkins\\.jenkins\workspace\xxxxxx\xxx\build@script\48f57227f2edc3230d2dd8ce6bc91878716b4cefe800a55d4de09aa30c3524e5'...
> ERROR: Checkout failed
> java.lang.IllegalArgumentException: renaming: target file already exists
> 	at com.microsoft.tfs.util.Check.throwForFalse(Check.java:150)
> 	at com.microsoft.tfs.util.Check.isTrue(Check.java:98)
> 	at com.microsoft.tfs.util.temp.TempStorageService.renameItem(TempStorageService.java:347)
> 	at com.microsoft.tfs.core.clients.versioncontrol.engines.internal.workers.GetDownloadWorker.moveTempFileToTargetFile(GetDownloadWorker.java:502)
> 	at com.microsoft.tfs.core.clients.versioncontrol.engines.internal.workers.GetDownloadWorker.downloadFile(GetDownloadWorker.java:332)
> 	at com.microsoft.tfs.core.clients.versioncontrol.engines.internal.workers.GetDownloadWorker.call(GetDownloadWorker.java:157)
> 	at com.microsoft.tfs.core.clients.versioncontrol.engines.internal.workers.GetDownloadWorker.call(GetDownloadWorker.java:72)
> 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
> 	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
> 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
> 	at com.microsoft.tfs.core.clients.versioncontrol.internal.concurrent.BoundedExecutor$1.run(BoundedExecutor.java:85)
> 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> 	at java.base/java.lang.Thread.run(Thread.java:834)
> Caused: com.microsoft.tfs.core.clients.versioncontrol.exceptions.VersionControlException
> 	at com.microsoft.tfs.core.clients.versioncontrol.engines.internal.GetEngine.throwIfFatalError(GetEngine.java:2958)
> 	at com.microsoft.tfs.core.clients.versioncontrol.engines.internal.GetEngine.processOperationsInternal(GetEngine.java:1142)
> 	at com.microsoft.tfs.core.clients.versioncontrol.engines.internal.GetEngine.processOperations(GetEngine.java:957)
> 	at com.microsoft.tfs.core.clients.versioncontrol.engines.internal.GetEngine.processGetOperations(GetEngine.java:808)
> 	at com.microsoft.tfs.core.clients.versioncontrol.soapextensions.Workspace.get(Workspace.java:2459)
> Caused: java.lang.RuntimeException
> 	at com.microsoft.tfs.core.clients.versioncontrol.soapextensions.Workspace.get(Workspace.java:2470)
> 	at com.microsoft.tfs.core.clients.versioncontrol.soapextensions.Workspace.get(Workspace.java:2341)
> 	at com.microsoft.tfs.core.clients.versioncontrol.soapextensions.Workspace.get(Workspace.java:2331)
> 	at com.microsoft.tfs.core.clients.versioncontrol.soapextensions.Workspace.get(Workspace.java:2308)
> 	at hudson.plugins.tfs.commands.GetFilesToWorkFolderCommand.call(GetFilesToWorkFolderCommand.java:72)
> 	at hudson.plugins.tfs.commands.GetFilesToWorkFolderCommand.call(GetFilesToWorkFolderCommand.java:18)
> 	at hudson.remoting.LocalChannel.call(LocalChannel.java:46)
> 	at hudson.plugins.tfs.model.Server.execute(Server.java:233)
> Caused: java.lang.RuntimeException
> 	at hudson.plugins.tfs.model.Server.execute(Server.java:237)
> 	at hudson.plugins.tfs.model.Project.getFiles(Project.java:264)
> 	at hudson.plugins.tfs.actions.CheckoutAction.checkout(CheckoutAction.java:63)
> 	at hudson.plugins.tfs.TeamFoundationServerScm.checkout(TeamFoundationServerScm.java:352)
> 	at org.jenkinsci.plugins.workflow.steps.scm.SCMStep.checkout(SCMStep.java:129)
> 	at org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition.create(CpsScmFlowDefinition.java:159)
> 	at org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition.create(CpsScmFlowDefinition.java:70)
> 	at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:310)
> 	at hudson.model.ResourceController.execute(ResourceController.java:97)
> 	at hudson.model.Executor.run(Executor.java:429)
> ERROR: Maximum checkout retry attempts reached, aborting
> Finished: FAILURE