MW211 EXIT

devlog
SVN/管理外ファイルをコピーする方法
2019年02月06日
管理内ファイルをまるごと削除して、残りの残骸をコピーすればいいと思うのだが
管理内ファイルを削除する方法がみつからない。

ということで、チェックアウトした環境に
管理内ファイルを管理外ファイルをまるごとコピーして
差分を変更の取り消しで戻すという方法をとる。
(って、管理外ファイルを抽出できてないやん!という突っ込みは置いておいて)

ひとまず、コピー元もコピー先も「SVN更新」で最新の状態にする。
(じゃないと余計な差分を誤認してしまう)
もちろん、「SVNコミット」待ちのものは別途退避して特別扱い。

で、コピー元をコピー先にまるごとコピー(場合によっては移動)する。
但し、ここで気を付けなければならないのが「.svn」隠しファイルの存在。
こいつをコピー(して上書き)すると厄介なことになる。
なんとしても避けなければならない。

方法は簡単で、(最近のSVNは)チェックアウトしたフォルダ直下にしか
「.svn」がないので、まるごとコピーするのではなく、
直下(のフォルダやファイルを)から直下へコピーするだけでよい。

でも、ちと不安ではある。
そこでい、中間フォルダを用意し、そこにコピーし、検査する。

検査の方法は、コマンドプロンプトで以下のコマンドを実行して
該当なしであることを確認できればOK
┌──────────────────────────────────────┐
│dir /b/s|find ".svn"                                                        │
└──────────────────────────────────────┘
これで、隠しファイル「/ah」とアーカイブ(フォルダ)「/aa」も検索できる
分類:SVN
TortoiseSVN/除外
2019年01月30日
チェックアウトしたものの環境が異なるため(*1)正しく読み込めない場合がある
*1:LinuxファイルをWindows環境に持ってきた場合など

この場合、以下の方法がある

・差分がないのに常時差分があると認識してしまう場合
  →除外する…①

・チェックアウト自体できない(クリーンアップもできない)
  →一旦やり直して(全削除して)、該当するものをチェックアウトしない…②

①除外する方法
  SVNメニューより「特定のリビジョンへ更新」を選択
  「更新の深さ」を「除外」にして「OK」ボタンを押下
  後は、(「SVNコミット」ではなく)「クリーンアップ」を実行する

②チェックアウトしない方法
  「SVNチェックアウト」実行時に、「チェックアウトする項目の深さ」で
  「項目を選択」ボタンを押下する
  すると、ツリー表示されるので、チェックアウトするものにチェックを入れて
  (チェックアウトしないもののチェックをはずして)「OK」ボタンを押下する
  (すると「再帰的」から「個別に深さを指定」(*1)に変わる)
  *1:プルダウンメニュー上の選択肢にはない
      「項目を選択」ボタンを押下で初めて表示される項目
  後は、「OK」ボタン押下でチェックアウトする
分類:SVN
SVN/ファイルの更新日時
2018年01月05日
SVNから更新してひっぱってきたファイルの更新日時は、その時の現在日時となる。

コミットした日時にしたい場合には、以下の設定を行う。

  TortoiseSVNのメニューより、「設定」を選び、以下にチェックを入れる
  ┌────────────────────────────────────┐
  │設定 - 全般                                                             │
  ├────────────────────────────────────┤
  │┌Subversion─────────────────────────────┐│
  ││■ファイルの更新日時を「最終コミット日時」に設定する                ││
  │└──────────────────────────────────┘│
  │                        ┌────┐┌────┐┌────┐┌────┐│
  │                        │   OK   ││        ││        ││        ││
  │                        └────┘└────┘└────┘└────┘│
  └────────────────────────────────────┘
分類:SVN
SVN/機種依存文字は使えない?
2017年12月07日
TortoiseSVNにて「ログを表示」を実行した場合、
「サーバーに接続する際に問題が発生しました。…」というエラーが表示され
コミットしたものを参照できなくなる問題に遭遇した。

どうやら原因はファイル名などに機種依存文字(例「Ⅵ」など)が
含まれている場合に発生するようだ。

実験してみたら位置関係的には以下のような感じだった。
┌───────────────────────┐
│■機種依存文字ありルートフォルダ  →○参照可  │
│├□機種依存文字なしファイル      →○参照可  │
│├■機種依存文字ありファイル      →×参照不可│
│└■機種依存文字ありフォルダ      →×参照不可│
│  ├□機種依存文字なしファイル    →×参照不可│
│  └■機種依存文字ありファイル    →×参照不可│
└───────────────────────┘
分類:SVN
TortoiseSVN/クリーンアップ
2015年08月05日
【クリーンアップ】
  ■作業コピーの状態をクリーンアップ
    →狭義のクリーンアップコマンド(作業コピーを削除する)
  □ロックを強制解除する
    →書込ロックを全て解除する
  □タイムスタンプを修正
    →更新時刻を最終コミット時に全て更新
  □未使用のコピーを削除
    →作業コピーを整理する(サイズ削減)
  □シェルのオーバーレイを更新
    →エクスプローラのSVNアイコンを再更新する
  ■外部参照を含める
    →外部参照設定時にそれらも対象とする
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  □バージョン管理外のファイルやフォルダーを削除
    →処理タイトルの通り
  □無視するファイルやフォルダーを削除
    →処理タイトルの通り
  □すべての変更を再帰的に取り消す
    →処理タイトルの通り
分類:SVN
TortoiseSVN/フィル名にアスタリスクを含む場合
2015年07月30日
TortoiseSVNで、ファイル名に「*」(アスタリスク)が混じっているものを
チェックアウトしようとした場合、
Windowsファイルとしても使用できないのはもちろんのこと
何よりSubversionの内部のSQL文で不都合が起きてしまうためエラーとなる。
しかも、クリーンアップも効かなくなる。

とりあえずどうしようもないようだ。
ということでチェックアウトしたファイルをルートフォルダに遡って全削除。
そして、ルートフォルダを新たに設けて、改めてチェックアウト。
と、そのまま実行してしまうと再びエラーとなるだけ。
ここで、一工夫。

チェックアウトダイアログにて「チェックアウトする深さ」の
「項目を選択」ボタンを押下し、
問題のファイル(ファイル名にアスタリスクを含むもの)のみチェックをはずす。
すると「個別に深さを指定」になるので、その状態でチェックアウトを実行する。

もちろんだが、問題のファイル(ファイル名にアスタリスクを含むもの)は
チェックアウトできないので、更新もできない。
Windows上で更新はそもそもできないということ。
分類:SVN
TortoiseSVN/.svnファイルの見つけ方
2015年07月29日
Subversionの管理ファイル「.svn」は隠しファイルで
うっかり違う環境にそのままコピーしてしまうと
その環境を破壊してしまうという厄介なものだ。

で、コピー前にこれらを一掃して、純粋なファイルのみをコピーしたいものだ。

そこで、「.svn」ファイルの見つけ方。

以下でOK。
┌──────────────────────────────────────┐
│dir /b/s|find ".svn"                                                        │
└──────────────────────────────────────┘

誤検出がひどいようなら、隠しファイルに絞っての検索でもよい。
┌──────────────────────────────────────┐
│dir /b/s/ah|find ".svn                                                      │
└──────────────────────────────────────┘
分類:SVN
TortoiseSVN/差分をログ出力
2015年07月14日
「trunk」と「branches」の両方に同じ改造を行う場合、
それが正しく反映されているか確認するには、それぞれの差分を出して
その差分同士でさらに差分をとればよい。

で、差分の出し方。
diffツールに出したのではその後が続かないので、ログ出力せねばならない。

以下は、リビジョン2における改造をクリップボードに吐き出した場合の例。
(リポジトリのURLは「file:///C:/SVN」の部分)
┌──────────────────────────────────────┐
│svn diff -r 1:2 file:///C:/SVN | clip                                       │
└──────────────────────────────────────┘

但し、シフトJISが既定値なのでUTF-8(の日本語文字)が混じっていると
文字化けしてしまう。(別途対応が必要)
分類:SVN
SVN/ファイル名一括変更(3)svnコマンド
2014年03月16日
下記のようなsvnコマンドを実行すればファイル名の変更が行える。
┌──────────────────────────────────────┐
│svn rename 旧作業ファイル 新作業ファイル                                    │
└──────────────────────────────────────┘
旧作業ファイルはチェックアウトしているファイルのフルパスを指定する。
新作業ファイルについても、新ファイル名だけではなく、
パスの指定(たいていは旧作業ファイルと同じフォルダ)が必要。
#rename系コマンドの場合、新ファイル名のみの指定となるのが普通だが
  このコマンドは、あくまでdeleteとadd(つまりmove)のコマンドなので
  このような指定となる。

これを使って、あらかじめコマンドを用意しておき、一括コピペすれば解決となる。

ただし、Windows上では、svnコマンドを既定では使えない。
「command line client tools」が使えるようにインストールしなければならないのだ。
やり方は別途記載済みなので、そちらを参照のこと。
分類:SVN
SVN/ファイル名一括変更(2)TortoiseProc
2014年03月15日
「TortoiseProc.exe」という、TortoiseSVNのGUI操作をコマンドラインから実行できる
実行ファイルがある。

これはいわゆる「svn」コマンドとは違い、あくまでGUI操作同等だという点に注意。

ということを踏まえた上で、「TortoiseProc.exe」を使って見る。

下記のようにコマンドプロンプトから実行してあげると、
右クリックメニューから「名前を変更」を選んだ状態までは一気にもっていける。
┌──────────────────────────────────────┐
│TortoiseProc.exe /command:rename /path:作業ファイル                         │
└──────────────────────────────────────┘
※作業ファイルの部分はチェックアウトしている
  作業ファイルのフルパスである(リポジトリのフルパスではない)

  ┌────────────────────────────────────┐
  │名前変更                                                                │
  ├────────────────────────────────────┤
  │            ┌────────────────────────────┐│
  │新しい名前:│旧ファイル名                                            ││
  │            └────────────────────────────┘│
  │                                            ┌─────┐┌─────┐│
  │                                            │    OK    ││キャンセル││
  │                                            └─────┘└─────┘│
  └────────────────────────────────────┘

よって、あらかじめ変更するファイルを調べておき、コマンドを複数作成しておく。
コマンドプロンプトにまとめてコピペすれば、順番に上記ダイアログが
表示されるので、新ファイル名を手入力していく、という感じにもっていける。

といって、新ファイル名が手入力の時点で要件の半分しか満たしていない感じ。
これは「svn」コマンドで解決するしかないか。
分類:SVN
前へ 1 2 3 次へ