質問編集履歴

5 タグ追加

jona

jona score 2

2018/06/11 18:06  投稿

Unity上からsvnコミットができない
Unityメニューから指定したディレクトリ内のファイルを全てコミットする機能を作成しています。
やり方としてはSystem.Diagnostics.Processを使用してシェルスクリプト(Commit.sh)を実行しています
下記のコードの問題としてシェルスクリプト内のコミット処理のみ何故か動作せず、ログ出力でもエラーが表示されないです。
ターミナル上でCommit.shを実行するとコミット処理も含めて全て正常に処理が走ることは確認しています。
Commit.shはUnityプロジェクトのトップ、Assetsと同じ階層に配置しています。
使い方が間違っている、こうするとコミットできるなど、分かる方が居ましたら是非回答をよろしくお願いします。
Unity内のソース↓
```ここに言語を入力
// Unityメニューからコミット
[MenuItem("Development/Commit")]
private static void Commit()
{
// Commit.shを実行
cmd += "./Commit.sh;";
DoBashCommand(cmd);
}
// バッシュコマンドの実行
static void DoBashCommand(string cmd)
{
var p = new System.Diagnostics.Process();
p.StartInfo.FileName = "/bin/bash";
p.StartInfo.Arguments = "-c \" " + cmd + " \"";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.Start();
var output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
p.Close();
// ログ出力
UnityEngine.Debug.Log(output);
}
```
Commit.sh↓
```ここに言語を入力
#!/bin/bash
cd Assets/Commit
svn st | grep '^!' | awk '{print $2}' | xargs svn delete
svn st | grep '^?' | awk '{print $2}' | xargs svn add
#ここまでは実行できる↑
#-----------------------------------------------------------
#Unityから実行させると下記のコミット処理だけ動作しない↓
svn ci -m "なぜかコミットできない"
```
  • Unity

    5286 questions

    Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

  • SVN

    97 questions

    SVNは、CollabNet社が開発したソースコードなどを管理する集中型のバージョン管理システムです。 Subversionとも呼ばれ、CVSの問題点を解決すべく開発された次世代のバージョン管理システムとして開発されました。基本的なコマンドはCVSと共通しています。複数人の開発者が共同でひとつのソフトウェアの開発にあたるときなどに、ドキュメント及びソースコードなどを管理するのに使用されます。

4 スクリプト修正

jona

jona score 2

2018/06/11 15:34  投稿

Unity上からsvnコミットができない
Unityメニューから指定したディレクトリ内のファイルを全てコミットする機能を作成しています。
やり方としてはSystem.Diagnostics.Processを使用してシェルスクリプト(Commit.sh)を実行しています
下記のコードの問題としてシェルスクリプト内のコミット処理のみ何故か動作せず、ログ出力でもエラーが表示されないです。
ターミナル上でCommit.shを実行するとコミット処理も含めて全て正常に処理が走ることは確認しています。
Commit.shはUnityプロジェクトのトップ、Assetsと同じ階層に配置しています。
使い方が間違っている、こうするとコミットできるなど、分かる方が居ましたら是非回答をよろしくお願いします。
Unity内のソース↓
```ここに言語を入力
// Unityメニューからコミット
[MenuItem("Development/Commit")]
private static void Commit()
{
   // Commit.shを実行
   cmd += "./Commit.sh;";
   DoBashCommand(cmd);
}
// バッシュコマンドの実行
static void DoBashCommand(string cmd)
{
   var p = new System.Diagnostics.Process();
   p.StartInfo.FileName = "/bin/bash";
   p.StartInfo.Arguments = "-c \" " + cmd + " \"";
   p.StartInfo.UseShellExecute = false;
   p.StartInfo.RedirectStandardOutput = true;
   p.Start();
   var output = p.StandardOutput.ReadToEnd();
   p.WaitForExit();
   p.Close();
   // ログ出力
   UnityEngine.Debug.Log(output);
}
```
Commit.sh↓
```ここに言語を入力
#!/bin/bash
cd Assets/Commit
svn st | grep '^!' | awk '{print $2}' | xargs svn delete
svn st | grep '^?' | awk '{print $2}' | xargs svn add
#ここまでは実行できる↑
#-----------------------------------------------------------
#Unityから実行させると下記のコミット処理だけ動作しない↓
# svn ci -m "なぜかコミットできない"
svn ci -m "なぜかコミットできない"
```
  • Unity

    5286 questions

    Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

  • SVN

    97 questions

    SVNは、CollabNet社が開発したソースコードなどを管理する集中型のバージョン管理システムです。 Subversionとも呼ばれ、CVSの問題点を解決すべく開発された次世代のバージョン管理システムとして開発されました。基本的なコマンドはCVSと共通しています。複数人の開発者が共同でひとつのソフトウェアの開発にあたるときなどに、ドキュメント及びソースコードなどを管理するのに使用されます。

3 #!/bin/bashの追加

jona

jona score 2

2018/06/11 15:21  投稿

Unity上からsvnコミットができない
Unityメニューから指定したディレクトリ内のファイルを全てコミットする機能を作成しています。
やり方としてはSystem.Diagnostics.Processを使用してシェルスクリプト(Commit.sh)を実行しています
下記のコードの問題としてシェルスクリプト内のコミット処理のみ何故か動作せず、ログ出力でもエラーが表示されないです。
ターミナル上でCommit.shを実行するとコミット処理も含めて全て正常に処理が走ることは確認しています。
Commit.shはUnityプロジェクトのトップ、Assetsと同じ階層に配置しています。
使い方が間違っている、こうするとコミットできるなど、分かる方が居ましたら是非回答をよろしくお願いします。
Unity内のソース↓
```ここに言語を入力
// Unityメニューからコミット
[MenuItem("Development/Commit")]
private static void Commit()
{
   // Commit.shを実行
   cmd += "./Commit.sh;";
   DoBashCommand(cmd);
}
// バッシュコマンドの実行
static void DoBashCommand(string cmd)
{
   var p = new System.Diagnostics.Process();
   p.StartInfo.FileName = "/bin/bash";
   p.StartInfo.Arguments = "-c \" " + cmd + " \"";
   p.StartInfo.UseShellExecute = false;
   p.StartInfo.RedirectStandardOutput = true;
   p.Start();
   var output = p.StandardOutput.ReadToEnd();
   p.WaitForExit();
   p.Close();
   // ログ出力
   UnityEngine.Debug.Log(output);
}
```
Commit.sh↓
```ここに言語を入力
#!/bin/bash  
cd Assets/Commit
svn st | grep '^!' | awk '{print $2}' | xargs svn delete
svn st | grep '^?' | awk '{print $2}' | xargs svn add
#ここまでは実行できる↑
#-----------------------------------------------------------
#Unityから実行させると下記のコミット処理だけ動作しない
#Unityから実行させると下記のコミット処理だけ動作しない
# svn ci -m "なぜかコミットできない"
```
  • Unity

    5286 questions

    Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

  • SVN

    97 questions

    SVNは、CollabNet社が開発したソースコードなどを管理する集中型のバージョン管理システムです。 Subversionとも呼ばれ、CVSの問題点を解決すべく開発された次世代のバージョン管理システムとして開発されました。基本的なコマンドはCVSと共通しています。複数人の開発者が共同でひとつのソフトウェアの開発にあたるときなどに、ドキュメント及びソースコードなどを管理するのに使用されます。

2 ソースコメント追加

jona

jona score 2

2018/06/11 15:16  投稿

Unity上からsvnコミットができない
Unityメニューから指定したディレクトリ内のファイルを全てコミットする機能を作成しています。
やり方としてはSystem.Diagnostics.Processを使用してシェルスクリプト(Commit.sh)を実行しています
下記のコードの問題としてシェルスクリプト内のコミット処理のみ何故か動作せず、ログ出力でもエラーが表示されないです。
ターミナル上でCommit.shを実行するとコミット処理も含めて全て正常に処理が走ることは確認しています。
Commit.shはUnityプロジェクトのトップ、Assetsと同じ階層に配置しています。
使い方が間違っている、こうするとコミットできるなど、分かる方が居ましたら是非回答をよろしくお願いします。
Unity内のソース↓
```ここに言語を入力
// Unityメニューからコミット
[MenuItem("Development/Commit")]
private static void Commit()
{
   // Commit.shを実行
   cmd += "./Commit.sh;";
   DoBashCommand(cmd);
}
// バッシュコマンドの実行
static void DoBashCommand(string cmd)
{
   var p = new System.Diagnostics.Process();
   p.StartInfo.FileName = "/bin/bash";
   p.StartInfo.Arguments = "-c \" " + cmd + " \"";
   p.StartInfo.UseShellExecute = false;
   p.StartInfo.RedirectStandardOutput = true;
   p.Start();
   var output = p.StandardOutput.ReadToEnd();
   p.WaitForExit();
   p.Close();
   // ログ出力
   UnityEngine.Debug.Log(output);
}
```
Commit.sh↓
```ここに言語を入力
cd Assets/Commit
svn st | grep '^!' | awk '{print $2}' | xargs svn delete
svn st | grep '^?' | awk '{print $2}' | xargs svn add
 
#ここまでは実行できる↑  
#-----------------------------------------------------------  
#Unityから実行させると下記のコミット処理だけ動作しない  
 
# svn ci -m "なぜかコミットできない"
```
  • Unity

    5286 questions

    Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

  • SVN

    97 questions

    SVNは、CollabNet社が開発したソースコードなどを管理する集中型のバージョン管理システムです。 Subversionとも呼ばれ、CVSの問題点を解決すべく開発された次世代のバージョン管理システムとして開発されました。基本的なコマンドはCVSと共通しています。複数人の開発者が共同でひとつのソフトウェアの開発にあたるときなどに、ドキュメント及びソースコードなどを管理するのに使用されます。

1 svnコミットの実行をシェルスクリプト内で行うように変更

jona

jona score 2

2018/06/11 15:12  投稿

Unity上からsvnコミットができない
Unityメニューから指定したディレクトリ内のファイルを全てコミットする機能を作成しています。
下記のコードの問題としてコミット処理のみ何故か動作せず、ログ出力でもエラーが表示されないです。
下記のコードの問題としてシェルスクリプト内のコミット処理のみ何故か動作せず、ログ出力でもエラーが表示されないです。
ターミナル上でCommit.shを実行するとコミット処理も含めて全て正常に処理が走ることは確認しています。
Commit.shはUnityプロジェクトのトップ、Assetsと同じ階層に配置しています。
使い方が間違っている、こうするとコミットできるなど、分かる方が居ましたら是非回答をよろしくお願いします。
Unity内のソース↓  
```ここに言語を入力
// Unityメニューからコミット
[MenuItem("Development/Commit")]
private static void Commit()
{
   string cmd = "";
   cmd += "cd Assets/hoge;";
   // 削除されたファイルをsvn delete
   cmd += "svn st | grep '^!' | awk '{print $2}' | xargs svn delete;";
   // 追加されたファイルをsvn add
   cmd += "svn st | grep '^?' | awk '{print $2}' | xargs svn add;";
   // 差分をコミット
   cmd += "svn ci -m 'このコミットが動作しません';";
   // Commit.shを実行
   cmd += "./Commit.sh;";
   DoBashCommand(cmd);
}
// バッシュコマンドの実行
static void DoBashCommand(string cmd)
{
   var p = new System.Diagnostics.Process();
   p.StartInfo.FileName = "/bin/bash";
   p.StartInfo.Arguments = "-c \" " + cmd + " \"";
   p.StartInfo.UseShellExecute = false;
   p.StartInfo.RedirectStandardOutput = true;
   p.Start();
   var output = p.StandardOutput.ReadToEnd();
   p.WaitForExit();
   p.Close();
   // ログ出力
   UnityEngine.Debug.Log(output);
}
```  
 
Commit.sh↓  
```ここに言語を入力  
cd Assets/Commit  
svn st | grep '^!' | awk '{print $2}' | xargs svn delete  
svn st | grep '^?' | awk '{print $2}' | xargs svn add  
# svn ci -m "なぜかコミットできない"  
```
  • Unity

    5286 questions

    Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

  • SVN

    97 questions

    SVNは、CollabNet社が開発したソースコードなどを管理する集中型のバージョン管理システムです。 Subversionとも呼ばれ、CVSの問題点を解決すべく開発された次世代のバージョン管理システムとして開発されました。基本的なコマンドはCVSと共通しています。複数人の開発者が共同でひとつのソフトウェアの開発にあたるときなどに、ドキュメント及びソースコードなどを管理するのに使用されます。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る