特定のリビジョンなどのユーザー名を変更する方法に関する多くの例を見つけました。
しかし、私が必要なのはこれです。同僚の認証資格情報でチェックアウトを行い、将来のコミットのために資格情報に変更する必要があります。
すでに多くの変更が行われているため、資格情報でチェックアウトすることはできません...
これに詳しい人はいますか?
ユーザーを変更するには
Subversion 1.6以前:
svn switch --relocate protocol://currentUser@server/path protocol://newUser@server/path
Subversion 1.7以降:
svn relocate protocol://currentUser@server/path protocol://newUser@server/path
protocol://currentUser@server/path
が何であるかを調べるには、実行します
svn info
作業コピーに。
これを行う最も簡単な方法は、次回のチェックアウトまたはコミットで--usernameオプションを使用することです。例えば:
svn commit --username newUser
または
svn co --username newUser
その後、キャッシュされ、将来のコマンドのデフォルトのユーザー名として使用されます。
私はまったく同じ問題を抱えており、解決策を見つけました SVNクライアントはユーザー認証データをどこに保存しますか? :
cd
から~/.Subversion/auth/
へ。fgrep -l <yourworkmatesusernameORtheserverurl> */*
を実行します。(Windowsの場合、手順は類似しています。auth
ディレクトリは%APPDATA%\Subversion\
にあります)。
これは、ユーザー名がサーバーログインの一部であるSVNアクセススキームでのみ機能するため、file://
を使用してアクセスするリポジトリには使用できないことに注意してください。
<<それは非常に簡単です。あなたはただ実行する必要があります
svn up --username newUserName
それでおしまい。 >>
完全に機能し、ヒントにすぎません。更新だけでなく、どのsvnコマンドでも実行できます。
プロトコルがhttpで、Subversion 1.7を使用している場合、任意のコマンドでグローバル--usernameオプションを使用するだけで、いつでもユーザーを切り替えることができます。
Ingoの方法がうまくいかなかったとき、これがうまくいくことがわかりました。
Tortoise SVN --> Settings --> Saved Data
に移動します。
認証データを消去するオプションがあり、消去ボタンをクリックすると、ユーザーID /パスワードを消去する接続を選択できます。
チェックアウトまたは更新アクティビティを実行すると、ユーザーIDとパスワードの再入力が求められます。
また、遅すぎることに気づき、間違った資格情報を使用してコミットした場合、解決策は(事実の後)そのリビジョンのsvn作成者を変更することです: この質問 を参照してください
基本的に構文は次のとおりです。
svn propset --revprop -r (revision_number) svn:author (new username)
win10の場合、このフォルダーを削除してIDEを閉じる/開く必要があります
C:\ Users\User\AppData\Roaming\Subversion\auth
、私のプロジェクトでも「.Subversion」フォルダはなく、「。svn」のみ
Ingo Kegel's solution に基づいて、すべてのサブフォルダーのユーザー名を変更するための「小さな」bashスクリプトを作成しました。忘れないでください:
<NEW_USERNAME>
を新しいユーザー名に変更します。<OLD_USERNAME>
を現在のユーザー名に変更します(現在ユーザー名が設定されていない場合は、単に<OLD_USERNAME>@
を削除します)。以下のコードでは、svnコマンドのみが出力されます(実行されません)。 svnコマンドを実行するには、echo
とその前の空白(popd
のすぐ上)を削除するだけです。
for d in */ ; \
do echo $d ; pushd $d ; \
url=$(svn info | grep "URL: svn") ; \
url=$(echo ${url#"URL: "}) ; \
newurl=$(echo $url | sed "s/svn+ssh:\/\/<OLD_USERNAME>@/svn+ssh:\/\/<NEW_USERNAME>@/") ; \
echo "Old url: "$url ; echo "New url: "$newurl ; \
echo svn relocate $url $newurl ; \
popd ; \
done
お役に立てば幸いです!
同僚のブランチと同じトランクから独自のブランチを(独自の資格情報を使用して)作成し、同僚のブランチから作業コピーにマージしてから、ブランチからマージできると思います。今後のコミットはすべて、あなたからのものとしてマークする必要があります。
同僚にパッチを作成するよう依頼することができます。パッチを作成すると、変更がすべて単一のファイルにまとめられ、自分のチェックアウトに適用できます。これにより、すべてのファイルが適切に更新されます。その後、彼の側で変更を元に戻し、チェックインできます。