ちょっと変わったマニアな作品が集結

以下のページ等を参考にして
TortoiseSVNでbranchからtrunkへのマージを試みましたがサブフォルダ以下のファイルのマージが行われません。
http://hide.xsv.info/tips/svnmanual/merge1/

以下のようなフォルダ構成である場合、

Folder_A--File_A
|----File_B
|----Folder_B
|-----File_C

マージ元URLにhttp://localhost:8888/svn/branch/Folder_A を指定し、
マージ先URLにhttp://localhost:8888/svn/trunk/Folder_A を指定して
マージを実行すると、File_A, File_Bはマージされるのですが、
サブフォルダ以下のFile_Cはスルーされてしまいます。


作業コピーのあるフォルダで、右クリック-[マージ]で表示される
リビジョンの範囲をマージ
異なる2つのツリーをマージ
で試してみましたがいずれもサブフォルダのファイルはスルーされてしまいました。

TortoiseSVNでは、サブフォルダのマージはできないのでしょうか。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

>TortoiseSVNでは、サブフォルダのマージはできないのでしょうか。



普通にできますが…。
私の場合、マージでは「ブランチを再統合する」でマージしています。
機能ブランチとしてやっている場合…

trunk以下をbranchs/Func1としてブランチ作成。
「切り替え」で作業コピーを作成したブランチへ切り替え。
# ブランチ作成時に一緒に切り替えるコトの方が多いですが。
ブランチで追加する機能や変更する機能をいぢってコミット。
マージするときには切り替え。
マージを選択して「ブランチを再統合する」で作業コピーにマージして、
最後にマージ結果をコミット。

という運用でやっています。
# ブランチで追加/削除/リネームしたものも、マージで正しく統合されています。
# 別のブランチ作るときには、branchs/Func2とかで新たにディレクトリを切ってます。


ということで、どのようにブランチ作成したのでしょう?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

>普通にできますが…。

よくよく確認したらマージ元のファイルがそもそも更新されていませんでした。


作業コピーで編集をしてコミットしたのですが
おそらく、

>「切り替え」で作業コピーを作成したブランチへ切り替え。

をしてしていなくて、自分が思ってのとは違うところに
コミットされてしまっていたのが原因かと思います。

お騒がせしてすみません。
回答ありがとうございます。

お礼日時:2011/05/13 23:30

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qsvnでマージ中止後からマージできない

trunkフォルダ内のsoftwareというフォルダ内でcpp builder2009で作成のプロジェクトファイルで作業をしているのですが、修正などの編集を行いたくなり、softwareのフォルダをtortoise svnのブランチ機能で/branch/20140722_softwareというフォルダでブランチして、修正作業はこのフォルダ内で行いました。


一通り修正作業が完了したので、/trunk/software/のフォルダ内にマージ機能を使って見ようと思いました。


とりあえず現在の/branch/20140722_software/内で変更のあったソースコード関連のテキストファイル関連のファイルを/trunk/software/フォルダ内にマージをしたかったのですが、dfmという拡張子のファイルでconfrictが起こったようで、Abort mergeでマージを中止させました。

そして、競合があったファイルをResolveというのを/trunk/software/に行って、再度マージを行おうとするとマージが完了しているという内容が出てきました。


/branch/20140722_software/の最新リビジョン
/trunk/software/の最新リビジョン

この2つのフォルダをDFという比較閲覧ソフトで確認してみたところ、/branch/20140722_software/で変更をかけたソースコードのテキストファイルは/trunk/software/フォルダ内にはコピーされていない状態でした。



tortoise svnのマージの操作方法はこちらのサイトを参考にして実施しました。

http://hide.xsv.info/tips/svnmanual/merge1/



マージの種類としては”リビジョン範囲のマージ”というのを使用しました。

また、”マージするリビジョンの範囲(specific range)”というのはshow log機能で、/branch/20140722_software/が作成されたrev128から最後の修正までのrev168までを指定しました。



Merge depth:というのはWorking copyを洗濯

Compare whitespaces という機能ボタンをONにしてマージをしました。




なお、現在/trunk/software/の最新リビジョンで、/branch/20140722_software/の最新リビジョンからのファイルでマージしようとしても、できない状態なのですが、



”マージするリビジョンの範囲(specific range)”


この時の設定で”URL to merge from”で設定している/branch/20140722_software/フォルダのshowlogを見ると、


Actions:Modified Already merged とすべての変更があったリビジョンに表示されています。



たぶんですが、/trunk/software/フォルダは/branch/20140722_software/の内容を既にマージしているということになっているようなのですが、これを取り消す方法などをありますでしょうか?


また、このようなマージ機能の使用方法として適切な方法などご教示頂きまうよう、よろしくお願い致します。

trunkフォルダ内のsoftwareというフォルダ内でcpp builder2009で作成のプロジェクトファイルで作業をしているのですが、修正などの編集を行いたくなり、softwareのフォルダをtortoise svnのブランチ機能で/branch/20140722_softwareというフォルダでブランチして、修正作業はこのフォルダ内で行いました。


一通り修正作業が完了したので、/trunk/software/のフォルダ内にマージ機能を使って見ようと思いました。


とりあえず現在の/branch/20140722_software/内で変更のあったソースコード関連のテキストファイ...続きを読む

Aベストアンサー

とりあえず…使用しているTortoiseSVNのバージョンは明記した方がよろしいかと。
1.8.x辺りからマージダイアログの表示(と操作方法)が変わっています。

>たぶんですが、/trunk/software/フォルダは/branch/20140722_software/の内容を既にマージしているということになっているようなのですが、これを取り消す方法などをありますでしょうか?

コミットしていないなら、クリーンアップで戻せる場合もあります。
作業コピーを破棄してリポジトリからチェックアウトし直す。という手段もあるでしょう。
# リポジトリに含めていない作業ファイル(オブジェクトファイルなどの中間ファイルなどなど)はなくなってしまいますが。

>このようなマージ機能の使用方法として適切な方法などご教示頂きまうよう

手元のは1.8.7なので、それでとりあえず説明でしょうかね…。
# 日本語ランゲージパック有効化済み
ちなみに、私が運用している手順ですのでその辺りはご理解くださいな。
「Subversion ブランチ 運用 マージ」とかで検索すると他の例とか見つかるかも知れませんね。

1)trunkなどから作業用のブランチを作成する。
 [TortoiseSVN]-[ブランチ/タグの作成]を選択。
 「宛先のパス」でブランチ先のURLを入力、「作業コピーを新しいブランチに切り替える」にチェックをつけてブランチ作成。
 ログメッセージは「○○の為のブランチを作成」とか適当に。
2)ブランチ先でもにょもにょと作業してコミット。
 リビジョンが進む。
 # ブランチ元のリビジョンが進むこともある。
3)ブランチ側が一段落。ブランチ元にマージするすることを決意する。
 # マージした後はブランチ先が更新されることはほとんどないですけどね。再マージが面倒になるので。
4)作業コピーをブランチ元に切り替える。
 [TortoiseSVN]-[切り替え]を選択。
 「宛先のパス」でブランチ元のURLを入力、リビジョンも指定。(たいていはHEAD指定)
5)マージ作業開始。
 [TortoiseSVN]-[マージ]を選択。
 「リビジョンの範囲をマージ」を選択して[次へ]。
 「マージ元のURL」に1)で作成したブランチ先のURLを指定。
 「マージするリビジョンの範囲」はデフォルトのまま。(指定された範囲でブランチ先の先頭から最新まで…で指定もOKかと)
 [次へ]でマージ処理開始。
 # TortoiseSVN 1.7.xとかなら「機能ブランチをマージ」でサクっと処理できたような気がしますが。
6)コンフリクトがなければそのままコミットしてマージ結果をブランチ元に適用。
 コンフリクトがあった場合は手動などで解決(テキストファイルならTortoiseMergeやWinMergeで処理することもある)して、コミット。
 # 2)でブランチ元のリビジョンが進まなければそうそうコンフリクトは起こらないでしょう。
 # 実行ファイルとかをリポジトリに入れている場合はコンフリクトしますが、その場合は「作業コピー」のものを優先。としておきます。
 # んで、コミットする前にビルドして作業コピーのバイナリを更新してからコミット。

ブランチ先はこのまま放置…になりますね。
# ブランチ先で作業中にコミットしたログを後から参照するコトもあるかも知れませんので、リポジトリからブランチ先を削除することはありませんね。
# リポジトリから削除すると後から参照したい時に面倒ですし。(リビジョンを指定して切り替えて~などなど。 削除したところでリポジトリ格納先の容量が空くこともありませんし)

とりあえず…使用しているTortoiseSVNのバージョンは明記した方がよろしいかと。
1.8.x辺りからマージダイアログの表示(と操作方法)が変わっています。

>たぶんですが、/trunk/software/フォルダは/branch/20140722_software/の内容を既にマージしているということになっているようなのですが、これを取り消す方法などをありますでしょうか?

コミットしていないなら、クリーンアップで戻せる場合もあります。
作業コピーを破棄してリポジトリからチェックアウトし直す。という手段もあるでしょう。
# リポジトリ...続きを読む

Qデータベース内のテーブル名の取得

お世話になります。
初心者的な質問でしたらすいません。
SQL文にてデータベース内のテーブル名を
調べることができると聞いたことがあるのですが、
可能でしょうか。

もし、可能であれば、SQLの記述を教えてください。
お願いします。

Aベストアンサー

select * from tab;

私の場合、テーブル名だけ手っ取り早く知りたいとき、↑を打ちます。その他の情報も知りたいときは#2さんの仰るとおり、user_tablesで取得します。

Qバッチ処理でファイルの中身を変数に入れるやり方

あるファイルの中には1行の文字列があります。
このファイルをバッチで読み取り、変数に設定したいです。

例:
test.txt
abcacbacbacbacbacbacbacbacb

test,bat
set DATA=[test.txtを読み込んだ値]

よろしくお願い致します。

Aベストアンサー

これですね。

参考URL:http://www.upken.jp/kb/dqvgHNRUxwFDkmtoqEwfXHUjDrevNv.html

Q日付型カラムへのデータINSERT

お世話になります。ひとつご教授ください。

オラクル10g, ojdbc14でjdk1.4.2から接続です。

INSERT命令を使ってテーブルにレコードを追加する際に、DATE型のカラムに対して

INSERT TABLE_A (DATE1, ...) VALUES ('2006-4-27 12:00:00', ...);

を実行するとエラーORA-01861が出ます。そこで

INSERT TABLE_A (DATE1, ...) VALUES ('2006-4-27', ...);

このように記述して再度実行すると通ります。

このようなとき、時間の部分まで設定した値をカラムに格納したいときはどうしたらよろしいでしょうか?

よろしくお願いします。

Aベストアンサー

ごめんなさい。
説明と文例が違ってしまいました。
正しくはこちらです。

INSERT TABLE_A (DATE1, ...) VALUES (to_date('2006-4-27 12:00:00','yyyy/mm/dd hh24:mi:ss'), ...);
というように、to_date関数を使うのが一般的かと思います。

Q別のシートから値を取得するとき

Worksheets("シート名").Activate
上記のを行ってから別シートの値を取得するのですが、
この処理を行うと指定したシートへ強制的にとんでしまいます。。。

※イメージ
For ~ To ~
  Worksheets("シートA").Activate
  シートAの値取得
       :
  Worksheets("シートB").Activate
  シートBの値取得
Next

このイメージ処理を行うとものすごい勢いで画面がチカチカします。。。
シートを変えずに他のシートから値を取得する方法はないのでしょうか。
教えてください!

Aベストアンサー

Worksheets("シートA").Range("A1")

みたいな感じでできませんか?

QSQL 複数テーブルのupdate

こんばんは。
複数テーブルの複数カラムをupdateしたいのですが、
うまくいかず困っています。
どなたか助けてください>_<

テーブルA(tableA)のoptionAというカラムと、
テーブルB(tableB)のoptionBというカラムを両方更新したいんです。

やりたい内容のイメージとしてはこんな感じです↓
update tableA a, tableB b
set a.optionA='OK', b.optionB='OK'
where a.student_id=b.student_id and a.name='山田';

どなたかご指導お願いいたします。

Aベストアンサー

where条件に別テーブルの結合を必要とするので、同時に更新したい・・・
ということならば、以下のようなupdate文を2回発行ではだめなんでしょうか?

update tableB b
set b.optionB='OK'
where exists(
select * from tableA a
where a.student_id=b.student_id and a.name='山田'
);

update tableA a
set a.optionA='OK'
where a.name='山田';

QSubversionで日本語ファイル名が文字化け

Subversion+TortoiceSVNでソースコードの管理を行っているのですが、
つい最近、両ソフトをバージョンアップ(svn 1.6.xx⇛1.6.16?)したときから
ファイルのロールバックが出来なくなってしまいました。

ロールバックしようとするとチェックアウト画面のリポジトリのURLで
日本語のパス&ファイル名がURLエンコードされた状態になっており、
チェックアウトできません。

解決方法はありませんでしょうか?

よろしくおねがいします。

Aベストアンサー

>しかし、リポジトリURLは未だにURLエンコード状態…。
>こちらの解決方法はご存知ありませんか?

指定し直す…くらいですかね。
httpプロトコル、svnプロトコルではURLエンコードされていてもとりあえず問題ないですから。
とはいえ、チェックアウトすると作業コピーの名前が酷いことになりました。
リポジトリURLの「...」ボタンでブラウザ起動して再指定することで直りましたが。
# file:の時のようにファイルシステムからパスを指定する必要がない(というか上位ディレクトリに戻れる階層が多くない)ので、それほど手間ではないですし。

Qsvnのマージの使い方。

現在、Atmelのマイコンのプログラムファイルの管理をtortoise svnで行っています。

現在自分の使い方としては、trunkフォルダにリリースVersionのプロジェクトフォルダが入っていて、そのプロジェクトフォルダ内のファイルの検証や修正を行うためには必ずbranchフォルダにbranch機能でフォルダコピーしてからそのファイルの修正などを行っています。修正が完了した場合はtrunkフォルダのリリース版のファイルにマージして、branch側のフォルダは削除しています。


だいたいこのサイクルを繰り返しているのですが、共同作業者さんがbranchでの修正が先に終わってtrunkにマージしてリリース版が更新される場合があるのですが、現在の自分のbranch
のファイルはリリース版のものからすると古くなってしまうので、現在の最新のtrunkのファイルを自分のbranchにマージする方法というのはありますでしょうか?


以前trunkのファイルを自分のbranchにマージしたら競合が多発して一部ファイルの更新内容がスムーズにいかなくなってしまったことがあり、現在避けているのですが、良い方法をご存知の方いらっしゃいましたらどうぞご教示頂きますよう、お願い致します。

現在、Atmelのマイコンのプログラムファイルの管理をtortoise svnで行っています。

現在自分の使い方としては、trunkフォルダにリリースVersionのプロジェクトフォルダが入っていて、そのプロジェクトフォルダ内のファイルの検証や修正を行うためには必ずbranchフォルダにbranch機能でフォルダコピーしてからそのファイルの修正などを行っています。修正が完了した場合はtrunkフォルダのリリース版のファイルにマージして、branch側のフォルダは削除しています。


だいたいこのサイクルを繰り返しているのですが...続きを読む

Aベストアンサー

>現在の自分のbranch
>のファイルはリリース版のものからすると古くなってしまうので、現在の最新のtrunkのファイルを自分のbranchにマージする方法というのはありますでしょうか?

運用方針次第ですからなんとも……。


ちなみに私だったら次のような運用でしょうかね。

・機能ブランチはそのまま開発継続する。
・他の機能ブランチがtrunkにマージされていた場合に『自分の機能ブランチをマージ』する場合は、
 切り替えでtrunkに切り替えた後で自分の機能ブランチをマージする。
 ※衝突が発生したらそこで対処してからtrunkにコミットする。
・機能ブランチで開発中にtrunkにコミットされた不具合修正が『影響が小さい』場合は手動で取り込む。
 ※trunkとマージする際に衝突する可能性があるのでその時に対処する。
・機能ブランチで開発中にtrunkにコミットされた不具合修正の『影響が大きい』場合はtrunkから再度機能ブランチを作って開発中だった機能ブランチをマージする。
 ※開発中だった機能ブランチはそのままクローズ(触らない)する。
 ※もちろん、新たに機能ブランチを作成する前に開発中のものはコミットしておく。

基本は「trunkにマージする」であって「trunkを機能ブランチにマージする」ではありません。
# ついでに、開発終了した機能ブランチの削除もしません。
# 機能ブランチ削除したところでリポジトリ側の容量は変わりませんし、機能ブランチ作成中の履歴(コミットログなど)も参照しずらくなります。
# Rev指定で覗けるので参照できなくなるわけではないが……。


>以前trunkのファイルを自分のbranchにマージしたら

機能ブランチをtrunkにマージする時にハマりそうですねぇ…。


機能ブランチと書いていますが…バグ修正用にtrunkから切り出したブランチも同様です。

一度trunkから機能ブランチ作成してtrunkにマージした後、その機能ブランチで盛り込んでしまった不具合があった場合は…新たに不具合修正用のブランチを切るか、trunkでそのまま修正するか…のどちらかになります。
# マージ終わった後の機能ブランチは触らない。再マージが面倒になるから。
# マージ時にRev範囲を指定すれば可能…ではあるが、その間にtrunkに入った変更部分で余計な衝突なりが発生するかも知れないので。(基本的には大丈夫なハズ…ですけどね。機能ブランチ開発中に別の機能ブランチがtrunkにマージされた。というのと状況的に一緒ですし。運用方針次第です。)

>現在の自分のbranch
>のファイルはリリース版のものからすると古くなってしまうので、現在の最新のtrunkのファイルを自分のbranchにマージする方法というのはありますでしょうか?

運用方針次第ですからなんとも……。


ちなみに私だったら次のような運用でしょうかね。

・機能ブランチはそのまま開発継続する。
・他の機能ブランチがtrunkにマージされていた場合に『自分の機能ブランチをマージ』する場合は、
 切り替えでtrunkに切り替えた後で自分の機能ブランチをマージする。
 ※衝突が発生したらそこで対...続きを読む

Q「いずれか」と「いづれか」どっちが正しい!?

教えて下さいっ!
”どちらか”と言う意味の「いずれか」のかな表記として
「いずれか」と「いづれか」のどちらが正しいのでしょう???

私は「いずれか」だと思うんですが、辞書に「いずれか・いづ--。」と書いてあり、???になってしまいました。
どちらでもいいってことでしょうか?

Aベストアンサー

「いずれか」が正しいです.
「いづれ」は「いずれ」の歴史的かな遣いですので,昔は「いづれ」が使われていましたが,現代では「いずれ」で統一することになっていますので,「いずれ」が正しいです.

Q片方のテーブルに存在しないレコード取得したい

OracleのSQL文を教えて下さい。

-tableA-
key1,key2
001,1
002,2
002,1
003,2

-tableb-
key1,key2
001,1
002,1

取得したいレコード
002,2
003,2

お願いします。

Aベストアンサー

select * from tableA
where not exists (
select * from tableB
where tableA.key1 = tableB.key1
and tableA.key2 = tableB.key2
);

でどうでしょう?


人気Q&Aランキング