标签: versioning

接口和版本控制

我正在设计一个新的系统,我有很多接口随着系统的发展而增长.命名此接口的最佳做法是什么

ISomethingV01
ISomethingV02
etc
Run Code Online (Sandbox Code Playgroud)

我这样做

public interface ISomething{
      void method();
}
Run Code Online (Sandbox Code Playgroud)

然后我必须添加方法2所以现在我做什么?

public interface ISomethingV2:ISomething{
      void method2();
}
Run Code Online (Sandbox Code Playgroud)

或者以其他方式?

versioning interface naming-conventions

11
推荐指数
2
解决办法
1686
查看次数

用于Photoshop/Illustrator和相关二进制文件的最佳版本控制工具?

我之前询问过Version Cue 3和Subversion.我认为这是一个更好的问题,有人建议http://www.gridironsoftware.com/Flow/我希望这个问题将允许其他人加入并建议其他工具或提供使用Version Que与其他工具的具体建议.

versioning photoshop

10
推荐指数
2
解决办法
2万
查看次数

如何检查delphi的操作系统版本?Windows 7或Server 2008 R2?

我总是习惯用他们的主要/次要内部版本号检查Windows版本.奇怪的是,Windows 7和Server 2008 R2都返回相同的主要/次要版本号组合.

通过ver在命令提示符下键入来确认

versioning delphi version windows-server-2008 windows-7

10
推荐指数
2
解决办法
3万
查看次数

类版本控制以支持向后兼容性

在我工作的项目中,我们处理医疗账单.

每次状态对官方表单(我们的数据类表示)进行更改时,为了保持与以前表单的向后兼容性,我们添加新属性但保留旧属性,并具有使用的文档版本属性确定完成哪些验证以及显示它的UI操作.

这导致了项目生命周期内的繁琐课程(近5年的国家法定变更),而且根本不支持旧文档格式不是一种选择.

我想尝试为每个文档版本创建一个新类,但即使这样,我们也会有几个非常相似(虽然稍有改动)代码的副本.而ProgressNoteV16,ProgressNoteV17等类名看起来很可怕.

不能使用继承,因为这仍然会导致相同的问题(具有不再需要的属性的类).接口会使接口变得臃肿,这无法解决问题.

用于解决此问题的解决方案和最佳实践是什么?

.net versioning document class

10
推荐指数
1
解决办法
2154
查看次数

为应用程序开发版本编号

首先,我认为这个论坛不适合我的问题,所以如果它在错误的地方,请在适当的地方请原谅和放置.我没有为我的问题找到合适的论坛.

我开发了一个C#应用程序(Win Forms).现在我需要处理它的版本编号.我无法弄清楚最好的方法是什么.我希望版本号简单,如1.2或1.2.1.我读到了关于SVN版本的内容,但在这个阶段看起来似乎并不那么令人困惑.应用程序有不同的版本类型 - 1个带安装程序,1个没有安装程序.

我认为发布版本和开发版本应该是相同的 - 如果我错了,请纠正我.它应该自动处理还是手动更改?处理应用程序版本编号的最佳,简单和简单方法是什么.

c# versioning winforms

10
推荐指数
1
解决办法
2138
查看次数

如何为Android API 10-18视图设置位图背景?

我有的是:

表现:

<uses-sdk
    android:minSdkVersion="10"
    android:targetSdkVersion="18" />
Run Code Online (Sandbox Code Playgroud)

资源:

View view = createViewFromWhatever();
Bitmap bitmap = loadSomethingAddMore();
Run Code Online (Sandbox Code Playgroud)

我搜索到的任何地方都是接受的,建议:

view.setBackgroundDrawable(new BitmapDrawable(bitmap));
Run Code Online (Sandbox Code Playgroud)

但它在API 18中已弃用.我对操作系统级别的框架错误和错过文档感到恐惧.我想要尊重他们所说的话,并且在遇到崩溃的情况下"这不是我的错"

我甚new BitmapDrawable(bitmap)至无法使用,而我需要new BitmapDrawable(getActivity().getResources(), bitmap).如果我将方法更改为推荐方式:setBackground(new BitmapDrawable(getActivity().getResources(), bitmap));

它会将消息标记为错误:

调用需要API级别16(当前最小值为10):android.widget.RelativeLayout #setBackground

作为一个解决方案,我可以检查运行用户的版本是什么,并执行if-else,而不是我将拥有代码 if(isAndroidVersion10()) else if () ...

任何解决方案可接受

如果我通过反射逃避弃用警告,我仍然有责任在崩溃的情况下,因为我已经使用不推荐的方法释放代码! - 我打电话的方式是不同的.

如果我忽略了Lint,那么它会在低版本的api中崩溃,进行测试.

Ofc我想支持API 10,所以不能从这里接受大部分答案

versioning android view

10
推荐指数
1
解决办法
2万
查看次数

在Bamboo中部署分支计划 - 如何为自动部署定义任意发布版本

我们正在使用Bamboo 5.2进行持续集成.

源计划有几个额外的分支.每个分支都由git repo中的提交触发.

部署项目为每个分支配置了单独的环境,部署在成功构建源计划时自动进行.

当自动部署默认分支时 - 使用"发布版本控制"中定义的命名模式正确创建新版本(我们使用源计划变量来创建发布版本).

当自动部署任何其他分支时出现问题 - 我们使用默认版本获得新版本.正如Bamboo所说:"分支的发布将默认使用以构建结果的内部版本号为后缀的分支名称."

有可能覆盖这种方法吗?目标是从计划的变量设置发布版本(无论是默认计划变量还是分支计划变量),原因是我们有单个计划,配置了几个稳定的分支.

versioning deployment bamboo

10
推荐指数
1
解决办法
2377
查看次数

如何在GitHub受保护的分支中增加版本号?

当我的主分支启用了GitHub分支保护时,我正在寻找一个很好的流程来管理我的项目的版本号.

在理想的世界中,当您合并到"发布"分支时,持续集成服务器将运行其测试,然后自动增加项目的版本号并返回到SCM系统.

但是,通过分支保护,您无法在没有Pull请求的情况下提交到您的分支,因此您有一个catch-22,当CI服务器尝试更新版本号时,CI服务器无法将其推送到受保护的分支.

我可以想到一些解决方法,所有这些都是次优的:

  1. 启动系统,以便CI服务器制作PR以更新版本.我不确定你是否能用GitHub做到这一点,但即使这样做最终会为每一个'真正的'PR创建两个Pull请求,这很尴尬.
  2. 删除分支保护 - 现在任何人都可以将任何东西推送到分支机构,您必须通过手动流程管理您的开发人员
  3. 在拉取请求之前手动更新版本.这比#2略胜一筹,但它为开发人员在选择新版本号或将正确的版本号合并到错误的分支时犯错而打开了大门.

我希望还有其他我没有想过的选择.

我们使用的是Javascript和npm,但我认为这个问题与语言无关,例如,Java和Maven肯定存在相同的问题.

versioning github

10
推荐指数
1
解决办法
1193
查看次数

有条件的Gitignore

我有一个git仓库,我存储了我的个人文件.其中一些文档是LaTeX文件,有些甚至是PDF.我当然希望他们在我的文件回购中.

但是当我创建一个org-mode文档(*.org)时,我经常构建它,导致在调用org-mode文档时创建这些文件?:

  • α.tex
  • α.pdf
  • 自动/α.el

我不想跟踪它们,因为它们是生成的文件,我有源代码,但我不能简单地忽略*.tex所有*.pdf文件,甚至不是所有文件.

可以在.gitignore被告知忽略名称为每个文件?.tex或者?.pdf是否有一个名为?.org?是一个变量的任意字符串?

versioning git emacs gitignore org-mode

10
推荐指数
1
解决办法
1320
查看次数

将存储库升级到 v2

此时,我将 Go 1.11 模块用于多个存储库。现在我正在处理一个已经是 1.x 版本的问题。结合移动到 go 模块,我做了一些其他的重大更改,所以很明显是时候增加存储库的主要版本了。这意味着要使用第 2 版。

根据“go 命令”文档:

为了保持导入兼容性,go 命令要求主版本 v2 或更高版本的模块使用该主版本作为最终元素的模块路径。例如,example.com/m 的 v2.0.0 版本必须改为使用模块路径 example.com/m/v2,并且该模块中的包将使用该路径作为其导入路径前缀,如 example.com/m/v2 /子/包。以这种方式在模块路径和导入路径中包含主版本号称为“语义导入版本控制”。

来源

这是否像更新我的go.mod文件的第一行一样简单,附加/v2到模块名称?或者我应该v2/在我的存储库中创建一个目录并将所有文件移动到那里?

versioning go

10
推荐指数
2
解决办法
2832
查看次数