4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SVNの基本操作メモ

4
Last updated at Posted at 2026-06-24

1. はじめに

仕事で使うバージョン管理がSVN(Subversion)で、操作は TortoiseSVN(エクスプローラー上で右クリックして使うGUIツール)でやっている、という人向けのメモです。

最近はGitが主流なので、SVNの情報は古い記事が多く、最初は戸惑いがちです。この記事では、TortoiseSVNの画面操作を中心に、最低限これだけ知っておけば困らないことをまとめます。コマンドで操作する人向けに、各操作には対応するコマンドもカッコ書きで添えています。

ちなみにこの記事は、自分が「外で編集してドラッグ&ドロップで持ち込む」運用をしていて更新できずに困った経験がきっかけです。同じところでつまずいている人の参考になればと思います。

扱うのは日常的に使う操作だけです。「ファイルを履歴を残しながら共有する」用途で困らないことを目標にします。

※メニュー名は英語表記(SVN Update / SVN Commit など)で記載しています。TortoiseSVNのバージョンや言語設定によって表記が多少異なる場合があります(日本語UIだと「更新」「コミット」などと表示されます)。

2. 一番大事な違い:集中型 vs 分散型

SVNとGitの一番の違いはここです。

  • SVN(集中型):リポジトリはサーバー上に1つだけ。手元(作業フォルダ)にあるのは「最新を取ってきたファイル」であって、履歴そのものではない。
  • Git(分散型):手元にも完全な履歴のコピーがある。
    ここから、押さえておきたい点が2つあります。

ローカルにリポジトリの歴史がない

履歴はサーバー側にあります。手元のフォルダにあるのは作業中のファイルだけです。「ログを見る」操作も、実際にはサーバーの履歴を見にいっています。

コミットは即サーバー反映(pushがない)

SVNには「push」がありません。TortoiseSVNで「SVN Commit」した瞬間に、その内容がサーバーに反映され、他のメンバーにも見える状態になります。

Git: add → commit(手元) → push(共有)
SVN: SVN Commit(この1回で共有まで完了)

中途半端な状態でコミットすると、すぐ全員に影響します。送る前にダイアログの内容を確認するクセをつけましょう。

3. やりたいこと → TortoiseSVNの操作 → コマンド

TortoiseSVNでの操作と、対応するコマンドの早見表です。基本はフォルダやファイルを右クリックしてメニューから選びます。

やりたいこと TortoiseSVNの操作 対応コマンド
初回取得 空フォルダで右クリック → SVN Checkout svn checkout
最新を取り込む フォルダを右クリック → SVN Update svn update
変更を共有する 右クリック → SVN Commit → 送る項目にチェック → OK svn commit
ファイルを新規追加 ファイルを右クリック → TortoiseSVN → Add(その後Commit) svn add
状態・差分を見る 右クリック → Check for Modifications svn status / svn diff
履歴を見る 右クリック → TortoiseSVN → Show Log svn log
変更を取り消す 右クリック → TortoiseSVN → Revert svn revert
ファイルを削除 右クリック → TortoiseSVN → Delete svn delete
ファイルを移動・リネーム 右クリック → TortoiseSVN → Rename / 右ドラッグで移動 svn move

日常でいちばん使うのは SVN Update → 編集 → SVN Commit の繰り返しです。まずはこれだけ手に馴染ませれば十分です。

アイコン(オーバーレイ)の意味

TortoiseSVNは、管理下のファイルにマークを重ねて状態を教えてくれます。代表的なものだけ覚えておけば十分です。

  • 緑のチェック:変更なし(最新と同じ)
  • 赤のビックリマーク:変更あり(コミットすると反映される)
  • 青のプラス:新しく追加した(まだコミットしていない)
  • 疑問符(青):SVNの管理外(Addしないとコミットされない)

4. 作業の始め方:Checkoutして「中で」作業する

ここが一番大事な前提です。SVNは、Checkoutしてきたフォルダ(=作業コピー)の中で編集したときだけ、変更を追いかけられます。逆に言うと、別の場所で作ったファイルを後から持ち込んでも、SVNはそれを「同じファイルの更新」とは認識してくれません。

正しい始め方(最初の1回)

  1. 作業用の空フォルダを作る。
  2. そのフォルダの中で右クリック → SVN Checkoutsvn checkout)。
  3. リポジトリのURL(サーバーの場所)を入れてOK。サーバーからファイル一式が落ちてきます。
  4. これで、このフォルダが「作業コピー」になりました。以降の編集は、必ずこのフォルダの中のファイルを直接開いて行います。

日々の流れ

  1. 作業前に、フォルダを右クリック → SVN Update(最新を取り込む)。
  2. 作業コピーの中のファイルを直接開いて編集し、上書き保存する(場所も名前も変えない)。
  3. 右クリック → SVN Commit → 変更されたファイルにチェック → OK。
    これだけです。外で作ってドラッグ&ドロップで持ち込む工程は、そもそも要りません。

補足:「clone」はGitの言葉です。 SVNに clone という操作はなく、サーバーから一式を取ってくるのは Checkout です。(git-svn など特殊なケースを除けば)SVNでは「最初に1回 Checkout、あとは Update と Commit」と覚えておけばOKです。

5. ここで陥りやすいポイント

実際に詰まりやすい点です。1つ目が本記事の核です。

1. 外で編集して、ドラッグ&ドロップで持ち込むと更新できない ←最重要

次のような運用は、SVNと相性が悪くハマりやすいです。

  • 作業フォルダのでファイルを編集する
  • それを作業フォルダにドラッグ&ドロップで持ち込む
  • 更新したくなったら、また外で編集してドロップで持ち込む
    この場合、2回目以降で「更新できない(コミットに出てこない/Addからやり直しになる)」という状態に陥りがちです。

原因は4章のとおりです。ドロップで持ち込むと、SVNからは「前のファイルが消えて、別の新しいファイルが現れた」ように見えます。ファイル名が同じでも、SVNにとっては別物なので、「同じファイルの更新」として扱われません。そのため履歴も切れ、素直にコミットもできなくなります。

対策は「外で編集せず、作業フォルダの中のファイルを直接編集して上書き保存する」ことです。 これにより、更新できない問題も履歴が切れる問題も起きなくなります。

どうしても外で編集してしまった場合は、ファイルごと置き換えるのではなく、作業フォルダの中の同じ名前のファイルに、中身だけ上書きコピーしてください(「置き換えますか?」で上書きする形)。ファイルを消して入れ直すのとは別物です。

2. 新規ファイルは「置いただけ」では共有されない

新しく作ったファイルは、置いただけだとSVNの管理外(疑問符アイコン)です。右クリック → TortoiseSVN → Add して、さらに Commit して、初めてサーバーに上がります。「置いたのに他の人に見えない」はこれが原因のことが多いです。

3. コミットは即共有(取り消しにくい)

SVN Commitした瞬間に全員に反映されます。手元で試しにコミット、はできません。Revertは「手元の未コミットの変更を捨てる」操作で、サーバーに送ったコミットを消すものではない点に注意してください。

4. 移動・リネームはドラッグだけだと履歴が切れる

普通にドラッグして移動すると、1と同じく「消えて、別の場所に現れた」扱いになりがちです。履歴を保ったまま動かすなら、右ドラッグして「SVN Move」、またはRenameメニューを使います。

5. コミット前に「最新化」が必要

他の人が先に更新していると、古い状態のままではコミットできず、先にSVN Updateを求められます(「out of date」など)。コミット前にUpdateが基本の流れです。

6. SVN現場で生き延びる実践Tips

  • 編集は「作業フォルダの中のファイルを、消さずに上書き」。 外で作って持ち込まない。(4章・5-1のとおり)
  • コミット前に必ずSVN Update。 最新を取り込んでから送る。
  • コミット前にCheck for Modifications。 何を変更したか、Addし忘れがないかを確認する。
  • アイコンの色を信じる。 赤=要コミット、疑問符=Addが必要、の2つを意識するだけでミスが減ります。
  • コミットメッセージは一言でも残す。 後から履歴を見たとき、自分が一番助かります。

7. まとめ

  • SVNは集中型。手元にあるのはファイルで、履歴はサーバー側
  • 作業は Checkoutしたフォルダの中で、ファイルを直接編集するのが大原則。
  • 外で編集してドラッグ&ドロップで持ち込むと、更新できず履歴も切れる。 中で直接いじる運用に変えれば解決。
  • 新規ファイルは Add → Commit して初めて共有される。
  • 日常は Update → 編集 → Commit の繰り返しでほぼ足りる。
    GitとはSVNの考え方は違いますが、日常で使う操作はそれほど多くありません。特に「Checkoutしたフォルダの中で、消さずに上書き編集する」だけ押さえておけば、更新や履歴で困ることはほぼなくなります。

参考文献

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?