我在http://example.com/v1/SomeResource上部署了RESTful Web服务.有一天,新的协议版本(不向后兼容)被部署到http://example.com/v2/SomeResource.从客户端看,此升级可能在两个HTTP请求之间的任何时间发生.
服务器如何向客户端指示它不再支持v1调用,并且客户端应该升级到v2?我可以使用适当的响应代码吗?
我想向客户提供以下信息:
宪兵有AvoidAssemblyVersionMismatchRule以下描述:
此规则检查
[AssemblyVersion]匹配两者[AssemblyFileVersion]何时出现在程序集中.部署应用程序后,在两个属性中具有不同的版本号可能会造成混淆.
例如,此规则会警告Microsoft System.dll具有以下属性:
[assembly: AssemblyVersion("2.0.0.0")]
[assembly: AssemblyFileVersion("2.0.50727.3053")]
Run Code Online (Sandbox Code Playgroud)
我不同意宪兵的规则.接下来它将使您无法使用类似于Microsoft使用的版本控制方案,即
AssemblyFileVersion每个构建,AssemblyVersion只在公共接口或其他大的变化,AssemblyVersion并AssemblyFileVersion共享一个共同的前缀,我认为这个版本控制方案是为什么能够区分AssemblyVersion和AssemblyFileVersion首先区分的设计原因.
我无法想出为什么强制两个装配属性相等是一个好习惯,但也许你可以!我会对你的意见感兴趣.
如果确实没有充分的理由,我很快会建议宪兵开发者将规则改为
当规则内部存在两个前缀时,此规则检查
[AssemblyVersion]并且具有公共的非空前缀.[AssemblyFileVersion]
我们已经转向产品版本控制方法,它将根据以下格式标记/增加构建:[Major].[Minor].[Build].[Revision/Patch]和生产版本基本上是主要或次要的增量(取决于更改的范围).
这对于补丁和Trunk构建非常有用,但对于分支中的并发功能开发来说效果不是很好 - 特别是因为很可能我们会在分支上构建候选版本而不是合并到Trunk并释放(不是我喜欢的选项,但很可能不幸的是,更加现实.
无论我们是否合并到主干(或不是),是否有人有任何有用的策略来处理分支版本控制?我们需要能够从分支和主干中唯一地识别构建,并且可能在任何给定时间从主干或分支中释放.
一些考虑:
(轻量级)场景可能会有所帮助:
Product X\Trunk (ver 1.1.208.0)
Product X\Branches\Feature A (ver 1.1.239.0)
Product X\Branches\Feature B (ver 1.1.221.0)
Run Code Online (Sandbox Code Playgroud)
编辑:到目前为止我发现的最好的文档位于MSDN上,虽然它对并发分支的独特版本有点模糊.
许多项目(例如Linux)都v在它们的git版本标签之前,例如v3.19,这使得解析这些标签变得更加困难,没有明显的原因.这样做有什么意义?
我有一个文本文件,只包含一行,我的应用程序的版本号.一个例子是1.0.0.1.我想增加内部版本号.使用我的示例,我将在同一文本文件中获得输出1.0.0.2.
我怎么能用Powershell做到这一点?
到目前为止我还没有使用过SVN.为什么网站(例如Stack Overflow)会在底部显示SVN版本?它是什么版本的?在公共场合展示它有什么好处?
我试图遍历SPListItem.Versions集合以查找最新批准的列表项.
我的列表项有三个版本:前两个是批准的,最后一个是草稿.但我的代码说他们都在选秀中!请帮忙!
// Iterate through all versions
for (int index = 0; index < item.Versions.Count; index++)
{
SPListItem versionedItem = item.Versions[index].ListItem;
// Check if moderation information is set to approved
if (versionedItem.ModerationInformation.Status.Equals(SPModerationStatusType.Approved))
{
// We found an approved version!
itemFound = versionedItem;
}
}
Run Code Online (Sandbox Code Playgroud) 正如你从标题中看到的那样,我想问一下Maven 3中的情况不再支持pom.xml中的$ version.我们是否必须一次又一次地在每个pom.xml和相关配置文件中的每个项目中写一个常量?我们怎么能避免这样做?我们如何使用像$ version这样的版本控制方法?
我需要合并两个类似的巨大项目(1000多个类).第二个是第一个的分支,它包含一些特定于国家的行为.这两个项目分歧很大,因为svn版本处理得非常糟糕.
经常发生两个类在语义上相同.它们的源代码仅在警告,导入语句,某些方法或变量的顺序,代码格式,注释等方面有所不同.
有没有办法自动检查两个类在语义上是否相同?
versioning ×10
maven-2 ×2
.net ×1
assemblyinfo ×1
attributes ×1
build ×1
gendarme ×1
git ×1
java ×1
linux ×1
maven ×1
maven-3 ×1
merge ×1
mysql ×1
powershell ×1
rest ×1
sharepoint ×1
splistitem ×1
svn ×1
version ×1