現在Ubuntu Linuxを使用しています。svn管理のディレクトリ内で、a.outというフォルダを削除しました。
これをSVNサーバー側のリポジトリ側へも反映したいのでcommitしたいのですがどうやれば良いでしょうか?


現在カレントディレクトリは

/root/20140411

このディレクトリです。



20140411のディレクトリがSVNで管理しているディレクトリです。


/root/20140411 カレントディレクトリ内で

# svn update
このようにアップデートを行ってみたら、アップデートできました。


しかし、

# svn commit
これをやっても、コミットされませんでした。

現在のカレントディレクト内をコミットする方法をご教示頂きますよう、お願い致します。

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

A 回答 (4件)

> a.outというフォルダを削除しました。



どのように削除したのでしょう。
もしかするとsvnを通さずに、直接rmやrmdirコマンドで削除していないでしょうか。
それとも下のようにsvnコマンドを使って削除した後で、コミットができないのでしょうか。

$ svn rm a.out
    • good
    • 0
この回答へのお礼

回答頂きありがとうございます。
rmコマンドでファイルを削除していることが原因でした。

#svn rm ファイル名

これでファイル削除するんですね。
助かります。

お礼日時:2014/04/29 07:36

単に rmdirやrmで削除しただけなら、 svn にとっては「紛失」しただけで、 svn update したら復帰します。


リポジトリからも削除したいのなら svn rm を使います。
作業ディレクトリ側のファイルを指定する方法と、リポジトリ側のファイルを指定する方法があります。


ところで, a.out は普通、Cコンパイラ等のデフォルトの出力ファイルですが、「フォルダ」であってますか?
    • good
    • 0
この回答へのお礼

回答頂きありがとうございます。
rmコマンドでファイルを削除していることが原因でした。

#svn rm ファイル名

これでファイル削除するんですね。
助かります。


a.outはフォルダじゃなくて、ファイルですね
失礼しました。(^^;

お礼日時:2014/04/29 07:39

>このような感じでエラーとも表示されない感じです。



commitするものがなかったから結果何もされなかったとかでは?
削除したa.outは管理対象になってたんでしょうか。
管理対象のディレクトリにあるというだけでは自動的に管理対象になったりはしませんけど。
    • good
    • 0
この回答へのお礼

回答頂きありがとうございます。
rmコマンドでファイルを削除していることが原因でした。

#svn rm ファイル名

これでファイル削除するんですね。
助かります。

お礼日時:2014/04/29 07:36

># svn commit


>これをやっても、コミットされませんでした。

メッセージも何も出なかったんですか?
    • good
    • 0
この回答へのお礼

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

root@ubuntu:~/20140411# svn commit
root@ubuntu:~/20140411#


このような感じでエラーとも表示されない感じです。

お礼日時:2014/04/28 17:03

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

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

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

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

QSVNでタグ指定でコミット履歴を見る方法は?

SVNでタグ指定でコミット履歴を見る方法は?

SVNで特定のファイルにのコミットコメント履歴を見たいと思っています。
その際に、2つのタグを指定しその間の履歴のみを参照したいと思っています。

CVSでは普通に用意されていて、容易に実行できました。
SVNでも同等の機能があるはずだと思っていたのですが、
少し調べたところCVSとは違い、タグを指定してコマンドを
実行する文化が無いようだということは分かりました。

代わりに、タグをつけたときのリビジョンを指定すればいいのですが
タグをつけたときのリビジョンの取得方法が分かりませんでした…。


そこで質問です
(1)(もしあるならば)SVNコマンドでタグを指定して
 コミットコメントの履歴を取得する方法
(2)SVNコマンドでタグを指定してそのリビジョン番号を取得する方法

※(1)(2)ともにそうですが、出来ないことが分かっているのなら
「出来ない」という情報をいただけるとうれしいです。
※作業自体はシェルに書き込むので、SVNへの複数回のアクセスや
Linuxコマンドを組み合わせて実行するのでもかまいません。

よろしくお願いします。

SVNでタグ指定でコミット履歴を見る方法は?

SVNで特定のファイルにのコミットコメント履歴を見たいと思っています。
その際に、2つのタグを指定しその間の履歴のみを参照したいと思っています。

CVSでは普通に用意されていて、容易に実行できました。
SVNでも同等の機能があるはずだと思っていたのですが、
少し調べたところCVSとは違い、タグを指定してコマンドを
実行する文化が無いようだということは分かりました。

代わりに、タグをつけたときのリビジョンを指定すればいいのですが
タグをつけたときのリ...続きを読む

Aベストアンサー

Subversionでは、タグの扱いがCVSとは違いますが…その辺りは理解されています?

推奨されているSubversionのリポジトリレイアウトでリポジトリを作成した場合、
タグを設定すると、「その時のリポジトリのコピー」を作成するような感覚になります。

タグ1を作成(Rev10)
ブランチ2を作成(Rev11)
ブランチ2にコミット(Rev12~14)
トランクにコミット(Rev15)
ブランチ2にコミット(Rev16)
トランクにブランチ2をマージしてコミット(Rev17)
タグ2を作成(Rev18)
とした場合、どこのログが欲しいのでしょうか?

svn log タグ1のURL
の場合は、タグ1を作成した時に記録したログしか出ませんし、
svn log タグ2のURL
の場合は、タグ2を作成した時に記録したログしか出ません。

上記のRev11~Rev17のログは取得できません。
リポジトリのルートでRev10~Rev18のログを取得することで、全部のログが取得できますが…
コミットした時のパスは異なっているので、そこから抽出するの少々手間が掛かるかと思われます。

一般的なSubversionの運用では、タグを切った後はそのタグに対してコミットすることはない…と思われますが。
この場合は、
svn info タグのURL
とすることで、Last Changed Revがリビジョンとなります。
# もちろん、タグの下でコミットしていたらアテになりませんが…
# その場合は svn log タグのURL で、最後に表示されたリビジョン…となるでしょう。

Subversionでは、タグの扱いがCVSとは違いますが…その辺りは理解されています?

推奨されているSubversionのリポジトリレイアウトでリポジトリを作成した場合、
タグを設定すると、「その時のリポジトリのコピー」を作成するような感覚になります。

タグ1を作成(Rev10)
ブランチ2を作成(Rev11)
ブランチ2にコミット(Rev12~14)
トランクにコミット(Rev15)
ブランチ2にコミット(Rev16)
トランクにブランチ2をマージしてコミット(Rev17)
タグ2を作成(Rev18)
とした場合、どこのログが欲しいのでしょうか?

svn lo...続きを読む

Qコマンドプロンプト 現在のディレクトリ

コマンドプロンプトなどはPCの電源を消すと
現在いるディレクトリなどがリセットされると思いますがディレクトリをリセットしない方法などは御座いますか?

C:\Users\Takeru>
朝PCを付けるたびに「cd」をしなくてはならないので、電源を切っても現在のディレクトリをメモリーしておく昨日などは御座いますか?

Aベストアンサー

ショートカットを作成して、プロパティで作業フォルダーを希望のディレクトリーにしておくのではだめですか?

>頂いた回答には積極的にベストアンサーを返すように致しますので
>厳しい言葉を頂いた方が自分の為になるので

SHIN11SHINさんが投稿した質問
220
解決数 / 率
145 / 66%
お礼数
15

質問する時間はあってもお礼をする時間はないようですね。社会人失格です。

Qpre-commitでリビジョン番号を反映する方法

ソースコードにリビジョン管理用のテキストファイル(revision.txtとします)を用意して、コミットする度に、リポジトリの最新リビジョンと同期させたいと考えています。

pre-commitでコミット直前に作業コピーのrevision.txtの内容を書き換える方法で一応実現できたのですが、作業コピー上のrevision.txtのパスを指定する必要があり、メンバー毎に作業コピーのパスが違う環境では使いづらいものになってしまいました。

コミット直前にリポジトリの中身を直接書き換えられることができれば、クライアント側の環境に依存しない形を実現できると考えているのですが、このようなことを実現する方法はあるのでしょうか。

逆にソースコードに最新のリビジョン番号を埋め込みたい場合、別のよい方法があれば教えていただきたいです。

Aベストアンサー

>使用しているバージョン管理システムはSubversion1.6.11です。

RHEL5.x系…でしょうかね?
サーバはLinuxってことでいいのでしょうか?
Windowsだと下記の処理はちょっと面倒そうですから。
# Perlなり入れてあればフック用のバッチから呼び出すことで同等なコトは可能でしょうけど……。

クライアントからの1回のコミットでリビジョンが2つ上がる。
ということを許容できるのであれば、
post-commitフック辺りでrevision.txtを書き換えてコミットする。
とかいう方法も取れるかと。
post-commitでサーバ上の作業ディレクトリに一端チェックアウトしrevision.txtのみ書き換えてコミットするようなスクリプトを実行する。
post-commitではコミットされたファイルがrevision.txtだけの場合は上記のスクリプトを実行しない。
とか。
ただ、この場合…クライアントではコミットした後、更新を実施しないと面倒なことになる恐れが…。
# まぁ、他人がコミットしているのと同じことなので…運用でカバーしていただくしかないかも知れませんけど……。

コミットする人にrevision.txtの更新を強制する。とか…
pre-commitでrevision.txtが正しく更新されているかチェックするスクリプトを実行する。
更新されていない場合は、エラーメッセージを表示(pre-commitで標準出力に出力する)してスクリプトの戻り値でコミットを中断できるハズです。
# エラーメッセージの文字コードって…クライアントとかに依存するんでしょ~かね?
# どっかのリポジトリにアクセスした時にTortoiseSVNに文字化けしたエラーメッセージが表示されたことがあったような…。

ブランチやタグの作成でコミットされた場合…は除外する必要があったりしますから、どちらもその辺りは手間…かも知れませんね。
# svnlook changed辺りで…一応判定は可能かと思いますが。

運用的にアレですが、私なら後者の方法を採りますかね…。
『ただのインクリメント作業を強制させる。』というのがほんとにアレですが…。
pre-commitで…クライアントからのコミット対象外ファイルに手を出せる(リポジトリ内のファイルを書き換えして一緒にコミットできる)のであれば、今回の要件にはベストなんでしょうけど…。

revision.txtがリポジトリ内でどんな場所にあるのか不明ですし、リポジトリレイアウトについても不明です。
revision.txtの内容も不明…という状況ですので具体的なスクリプトについては書けませんが……。

フックスクリプト、実際に使ったことあるのはpre-revprop-changeくらいですしねぇ…。
ログメッセージの編集を許可する…という為だけに。

>使用しているバージョン管理システムはSubversion1.6.11です。

RHEL5.x系…でしょうかね?
サーバはLinuxってことでいいのでしょうか?
Windowsだと下記の処理はちょっと面倒そうですから。
# Perlなり入れてあればフック用のバッチから呼び出すことで同等なコトは可能でしょうけど……。

クライアントからの1回のコミットでリビジョンが2つ上がる。
ということを許容できるのであれば、
post-commitフック辺りでrevision.txtを書き換えてコミットする。
とかいう方法も取れるかと。
post-commitでサーバ上の作業...続きを読む

Qadmin/testディレクトリにアクセスできない

sOS:TurboLinux8.0
Apache/1.3.26

admin
test

上記2ディレクトリに存在するファイルに、ブラウザ上からアクセスすると「Not Found」になってしまいます。
もちろん、lsなどで見てみるとファイル自体は存在しています。

そこで上記2ディレクトリの名前を別のもの(例えばadmin2)に変更するとアクセスできるようになります。

admin/test これらのディレクトリは予め使えないようになっているなどの制約は存在するのでしょうか?
また、その制約はどのような環境の時に発生するのでしょうか?
実はもう一つサーバを所有していてそちらでは上記ディレクトリ名は問題なく利用できたりします。環境は若干違うかもしれませんが・・・

ご存知の方、ご教授頂ければ幸いです。
よろしくお願い致します。

Aベストアンサー

 まず apache の設定ファイル httpd.conf の確認が必要だと思います。(Turbolinux は持っていないので分からないのですが、/etc/httpd/conf/httpd.conf でしょうか)

 その中に、

Alias /admin /foo/bar
Alias /test /foo/var

といった、エイリアスの指定(ブラウザ上で http://URL/admin にアクセスすると /foo/var ディレクトリを表示しようとする)がされているか、

<Location /admin>
Order deny,allow
Deny from all
Allow from .example.jp
</Location>

このようにディレクトリへのアクセス制限がかけられている可能性が高いと思います。

問題がないサーバとの httpd.conf を比較されてみると良いですよ。あとはブラウザで File Not Found が出ているとき、どこを実際に見ているか apache の error_log を調べてみるのも1つの方法です。

 まず apache の設定ファイル httpd.conf の確認が必要だと思います。(Turbolinux は持っていないので分からないのですが、/etc/httpd/conf/httpd.conf でしょうか)

 その中に、

Alias /admin /foo/bar
Alias /test /foo/var

といった、エイリアスの指定(ブラウザ上で http://URL/admin にアクセスすると /foo/var ディレクトリを表示しようとする)がされているか、

<Location /admin>
Order deny,allow
Deny from all
Allow from .example.jp
</Location>

このようにディ...続きを読む

Q謎!? /etc/rc.d/init.d/qmail.shのtcpserverでのpop3dの起動でホスト名が反映されない?

宜しくお願い致します。
RedHat9、qmail-1.03でdaemontools-0.76を使用しています。
以前はold.co.jpという名称でメールtcpserverを運営してました。
こないだ、new.dyndns.comに切換えようとしたのですが

# hostname
new.dyndns.com

# grep -lr old.co.jp /etc/rc.d

# grep -lr new.dyndns.com /etc/rc.d
/etc/rc.d/init.d/qmail.sh

#cat /etc/rc.d/init.d/qmail.sh | grep -v ^# | grep -v ^$
PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin
[ -f /var/qmail/rc ] || exit 0
case "$1" in
start)

#For POP3
echo -n 'qmail-pop3d starting.'
/usr/local/bin/tcpserver -x /etc/tcpserver/pop3d_rules.cdb 0 \
pop-3 /var/qmail/bin/qmail-popup new.dyndns.com /bin/checkpassword \
/var/qmail/bin/qmail-pop3d Maildir 2>&1 | /var/qmail/bin/splogger pop3d
3 &
echo
touch /var/lock/qmail
ulimit -a
;;


となっているにも拘らずリブートしても何故か

# ps ax | grep pop
7315 ? S 0:00 supervise qmail-pop3d
7864 ? S 0:00 /usr/local/bin/tcpserver -x /etc/tcpserver/pop3d_rule
s.cdb 0 pop-3 /var/qmail/bin/qmail-popup old.co.jp /bin/checkpassword /var/qmai
l/bin/qmail-pop3d Maildir
16439 pts/1 S 0:00 grep pop

と以前のホスト名のままです。何か他にも設定必要なのでしょうか??

# kill -HPU 7864
としても相変わらずなのです。

宜しくお願い致します。
RedHat9、qmail-1.03でdaemontools-0.76を使用しています。
以前はold.co.jpという名称でメールtcpserverを運営してました。
こないだ、new.dyndns.comに切換えようとしたのですが

# hostname
new.dyndns.com

# grep -lr old.co.jp /etc/rc.d

# grep -lr new.dyndns.com /etc/rc.d
/etc/rc.d/init.d/qmail.sh

#cat /etc/rc.d/init.d/qmail.sh | grep -v ^# | grep -v ^$
PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin
[ -f /var/qmail/rc ] || exit 0
case "$1" ...続きを読む

Aベストアンサー

以下を実行した場合、何かヒットするファイルがありますか?

# grep -lr old.co.jp /service

もしくは、svscanbootから起動されているはずのsvscanの引数に指定されているディレクトリに対して「grep -lr old.co.jp」を実行したら何かヒットするファイルがありますか?


人気Q&Aランキング

おすすめ情報