2016-07-27 87 views
1

由于我正在开发一个涉及多个开发人员的项目,并且我们正在使用DVCS,因此每位开发人员都将在分配给他们的功能分支上工作。也就是说,功能分支从最新的develop分支中分支出来。在develop分支,在DatabaseHandler分贝版本是Android:控制数据库版本

私有静态最终诠释DATABASE_VERSION = 2;

在我的功能分支中,我需要创建一个新表。所以我必须将版本增加到3,所以我可以在onUpgrade中包含以下内容来执行CREATE_APPLIANCE_TABLE声明。

@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还是?

在此先感谢。 :)

回答

2

因为我理解你的问题。当你将合并你的代码文件时,你可以把你所有和他的表格创建成一个数据库版本。 就像是:

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

那么这是否意味着当我们的两个文件都合并到'develop'时,数据库版本将会是3?最初在'develop'中是2.但是在我们的个人功能上,我们增加到3个,因为我们需要为我们的功能添加1个新表。 –

+1

如果你们两个都做到了3 - 它会是3.如果你做到了2,但他做到了3 - 它将会是3 –

+0

是的,我们都做了3以便执行onUpgrade。好的,谢谢你的帮助! –

1

据我了解,当两个开发人员在同一文件上工作,在合并分支最后一个拉变化将获得该文件中的冲突的时间。因此,在解决所有冲突后,最后一位要进行更改的开发人员可以手动合并这些更改。

在你的情况,如果版本上进行开发是2(市场APK假设版本号为2),那么下一个发布版本(APK市场)的所有分支将是3,提供的所有功能都包含在该版本中。

+0

yeap,最后的开发者将看到代码A(他)和代码B(第一开发者),并且他必须将两者合并到代码C中。 –