Questions tagged «versioning»

软件版本控制是将唯一的版本名称或唯一的版本号分配给计算机软件的唯一状态的过程。在给定的版本号类别(主要,次要)中,这些编号通常按升序分配,并与软件中的新开发内容相对应。




7
API版本控制的最佳做法?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 6年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 Web服务REST API版本是否存在任何已知的操作方法或最佳做法? 我注意到,AWS通过端点的URL进行版本控制。这是唯一的方法还是有其他方法可以实现相同的目标?如果有多种方法,每种方法的优点是什么?
877 rest  versioning 

24
如何强制客户端刷新JavaScript文件?
我们目前正处于非公开Beta测试阶段,因此仍在进行相当快速的更改,尽管显然随着使用量的增加,我们将放慢这个过程。话虽这么说,我们遇到的一个问题是,在我们推出新JavaScript文件的更新之后,客户端浏览器仍然使用文件的缓存版本,而他们看不到更新。显然,在技术支持电话上,我们可以简单地通知他们进行ctrlF5刷新,以确保他们从服务器获取最新文件,但是最好在此之前进行处理。 我们当前的想法是将版本号简单地附加到JavaScript文件的名称上,然后在进行更改时增加脚本上的版本并更新所有引用。这肯定可以完成工作,但是更新每个发行版上的引用可能会很麻烦。 因为我确定我们不是第一个处理此问题的人,所以我认为我会将它扔给社区。更新代码时,如何确保客户端更新其缓存?如果您使用的是上述方法,是否正在使用简化更改的过程?


16
暂时保存Subversion中未提交的更改(la“ git-stash”)
在对存储在Subversion版本库中的软件进行编程时,我经常修改一些文件,然后注意我想为我的主要工作做一些准备性的更改。例如,在实现新功能时,我注意到一些重构可能会对我有所帮助。 为了不混淆两个无关的更改,在这种情况下,我想“收藏”我的更改,即还原到存储库版本,进行其他更改,提交这些更改,然后“取回”我的更改。 git-stash可以做到这一点。是否可以通过Subversion直接或使用某些插件或脚本来执行此操作。Eclipse插件也可以。
312 svn  versioning 


15
有关.NET中API突破性更改的权威指南
我想收集有关.NET / CLR中API版本的尽可能多的信息,尤其是API更改如何破坏客户端应用程序。首先,让我们定义一些术语: API更改 -类型的公开可见定义的更改,包括其任何公共成员。这包括更改类型和成员名称,更改类型的基本类型,从类型的已实现接口列表中添加/删除接口,添加/删除成员(包括重载),更改成员可见性,重命名方法和类型参数,添加默认值对于方法参数,在类型和成员上添加/删除属性,以及在类型和成员上添加/删除通用类型参数(我错过了什么吗?)。这不包括成员机构的任何更改,也不包括对私人成员的任何更改(即,我们不考虑反思)。 二进制级中断 -一种API更改,导致针对旧版本API编译的客户端程序集可能不会随新版本一起加载。示例:更改方法签名,即使允许以与以前相同的方式调用它(即:void会返回类型/参数默认值重载)。 源代码级中断 -API更改,导致编写的现有代码无法针对旧版本的API进行编译,因此可能无法与新版本一起编译。但是,已编译的客户端程序集仍可以像以前一样工作。示例:添加一个新的重载,这可能导致先前明确的方法调用中的歧义。 源代码级别的静默语义更改 -API更改会导致编写的现有代码可以针对较旧版本的API进行编译,从而通过例如调用其他方法静默更改其语义。但是,该代码应继续编译而不会出现警告/错误,并且以前编译的程序集应像以前一样工作。示例:在现有类上实现新接口,导致在重载解析期间选择了不同的重载。 最终目标是对尽可能多的破坏性的和安静的语义API更改进行分类,并描述破坏的确切效果,以及受破坏影响的语言和不受破坏的语言。进一步扩展后者:尽管某些更改会普遍影响所有语言(例如,向接口添加新成员将破坏该接口在任何语言下的实现),但有些更改需要非常特定的语言语义才能发挥作用。这通常涉及方法重载,并且通常涉及隐式类型转换。即使对于符合CLS的语言(即那些至少符合CLI规范中定义的“ CLS使用者”规则的语言),似乎也没有任何方法可以定义“最小公分母”。如果有人在这里纠正我的错误,我将不胜感激-因此,这将不得不逐语言进行。自然而然,最有趣的是.NET随附的那些:C#,VB和F#。但是其他的也相关,例如IronPython,IronRuby,Delphi Prism等。极端情况越多,就会越有趣-删除成员之类的事情是不言而喻的,但是方法重载,可选/默认参数,lambda类型推断和转换运算符之间的微妙交互可能会令人惊讶有时。 几个例子来启动这个: 添加新方法重载 种类:源代码级中断 受影响的语言:C#,VB,F# 更改前的API: public class Foo { public void Bar(IEnumerable x); } 更改后的API: public class Foo { public void Bar(IEnumerable x); public void Bar(ICloneable x); } 样例客户端代码在更改前起作用,在更改后中断: new Foo().Bar(new int[0]); 添加新的隐式转换运算符重载 种类:源代码级中断。 受影响的语言:C#,VB 不受影响的语言:F# …

12
最佳实践:软件版本控制
已关闭。这个问题是基于观点的。它当前不接受答案。 6年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 是否有任何指南或标准最佳做法,如何在业余时间对您开发的软件进行版本控制,但仍然会被某些人使用?我认为有必要对此类软件进行版本控制,以使您了解所讨论的版本(例如,错误修复,支持等)。 但是我从哪里开始版本控制?0.0.0?或0.0?然后如何增加数字?主要发布。较小更改?提交版本控制系统的任何版本都不应该是另一个版本吗?还是仅用于以生产方式使用的版本?
211 versioning 



5
维护程序集版本号的最佳实践/指南
我正在寻找有关如何管理.NET程序集的三个不同程序集版本号的指针,建议甚至指令。产品版本是最简单的,因为这通常是由业务决定的。然后,文件版本似乎用于部署之间的版本控制,其中仅在出厂时才使用实际的程序集版本。 现在,我只是在寻找一种简单的方法来标记程序集的测试和维护版本,而这些都不依赖于该程序集,因此我正在寻找文件版本上的自动递增版本号和修订版号,对于最终版本,请复制当前版本。文件版本到程序集版本。该产品已投入生产,但仍处于开发阶段-您知道-这些小型公司之一,没有变更控制基础架构的情况。

4
如何在Intellij中切换到另一个Subversion分支?
IntelliJ中切换分支的概念是什么?我一定是瞎子还是白痴... 我会假设会有“切换到复制”选项或类似的选项,但是没有... 编辑以澄清问题:我的上一个IDE具有一个简单的“切换到复制”选项,该选项更新了与当前分支/主干不同的所有文件。IntelliJ似乎有完全不同的方法,我似乎并不了解。该帮助也不是很有用。 有用的关键字,链接或提示非常感谢。谢谢。

7
Rails路线的API版本控制
我正在尝试像Stripe一样对我的API进行版本控制。下面给出的最新API版本是2。 /api/users 将301返回 /api/v2/users /api/v1/users 返回版本1的200个用户索引 /api/v3/users 将301返回 /api/v2/users /api/asdf/users 将301返回 /api/v2/users 因此,除非指定的版本存在,否则基本上没有指定版本的内容都将链接到最新版本,然后重定向到最新版本。 这是我到目前为止的内容: scope 'api', :format => :json do scope 'v:api_version', :api_version => /[12]/ do resources :users end match '/*path', :to => redirect { |params| "/api/v2/#{params[:path]}" } end

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.