2016-07-27 19 views
1

私は複数の開発者を含むプロジェクトに取り組んでおり、私たちはDVCSを使用していますので、各開発者は割り当てられた機能ブランチで作業します。つまり、機能ブランチは最新のdevelopブランチから分岐しています。 develop支店では、DatabaseHandlerでDBのバージョンはAndroid:DBバージョンの制御

プライベート静的最終int型のDATABASE_VERSION = 2です。

私の機能ブランチでは、新しいテーブルを作成する必要があります。だから私はバージョンを3に増やす必要があるので、CREATE_APPLIANCE_TABLEステートメントを実行するにはonUpgradeに以下を含めることができます。

@Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     Log.d("Database onUpgrade", "Old is: " + oldVersion + ". New is: " + newVersion); 
     switch(oldVersion) { 
      case 1: 
      db.execSQL(CREATE_USER); 
     case 2: 
      db.execSQL(CREATE_APPLIANCE_ACTIVITY); // for version 3 
    } 
} 

私の懸念は、別の開発者も新しいテーブルを作成する必要があり、彼は私と同じプロセスを実行するかどうかです。彼は彼のフィーチャーブランチのバージョンを3に増やしますか?もしそうなら、私たちのどちらかあるいは両方が私たちのフィーチャーブランチを閉じてそれをdevelopにマージしたときの次のステップは何でしょうか?同じファイルを編集したので、競合する可能性があります。だから、developブランチでは、バージョンは3か3か?

ありがとうございます。 :)

答えて

2

私はあなたの質問を理解しています。コードファイルをマージするときは、すべてのテーブルとテーブルを1つのデータベースバージョンで作成できます。そのような :

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    Log.d("Database onUpgrade", "Old is: " + oldVersion + ". New is: " + newVersion); 
    switch(oldVersion) { 
     case **N**: 
     db.execSQL(CREATE_YOUR_DATABASE); 
     db.execSQL(CREATE_HIS_DATABASE); 
} 
+0

これは、両方のファイルが「開発」にマージされると、データベースのバージョンは3になりますか?当初の開発では2でしたが、私たちの個別機能では、私たちの機能に1つの新しいテーブルを追加する必要があるため、3に増やしました。 –

+1

もしあなたが両方とも3になったら3になるでしょう。それを2にしても3にすると、それは3 –

+0

になります。私たちは両方とも 'onUpgrade'を実行するために3としました。さて、助けてくれてありがとう! –

1

2人の開発者が変更をプルするために枝をマージする時、最後の1で、同じファイルで作業するたびに、私は、理解したように、そのファイル内の競合を取得します。したがって、最後の開発者が変更を取得すると、すべての競合を解決した後に手動で変更をマージできます。

バージョンが2の場合(マーケットapkのバージョンが2であると仮定)、すべての機能がそのリリースに含まれている場合、すべてのブランチの次のリリースバージョン(マーケットAPK)は3になります。

+0

yeap、最後の開発者はCode A(his)とCode B(最初の開発者)を見て、両方をCode Cにマージする必要があります。 –

関連する問題