我有以下形式的版本号:
version.release.modification
其中版本,发布和修改是一组数字或'*'通配符.此外,这些数字(以及任何前面的数字)中的任何一个都可能丢失.
所以以下是有效的并解析为:
1.23.456 = version 1, release 23, modification 456
1.23 = version 1, release 23, any modification
1.23.* = version 1, release 23, any modification
1.* = version 1, any release, any modification
1 = version 1, any release, any modification
* = any version, any release, any modification
Run Code Online (Sandbox Code Playgroud)
但这些都无效:
*.12
*123.1
12*
12.*.34
Run Code Online (Sandbox Code Playgroud)
任何人都可以为我提供一个不太复杂的正则表达式来验证和检索版本,版本和修改号码吗?
它总是发生在我身上.我不小心版本文件,我不想被版本化(即开发人员/机器特定的配置文件).
如果我提交这个文件,我会搞乱所有其他开发者机器上的路径 - 他们会不高兴.
如果我从版本控制中删除该文件,它将从其他开发者机器中删除 - 他们会不高兴.
如果我选择永远不提交文件,我总是有一个"脏"的结账 - 我不开心.
是一种干净的方法来"修改"来自修订控制的文件,这会导致没有人感到不快乐吗?
编辑:尝试澄清一点:我已经将文件提交到存储库,我只想将其从版本控制中删除 - 我特别不希望它从每个人进行结账时被物理删除.我最初希望它被忽略.
答:如果我能接受第二个答案,那就是这个.它回答了关于git的问题 - 接受的答案是关于svn.
我经常需要为不同的基于XML的导入例程设计XML模式.很明显,XML模式会随着时间的推移而发展,或者它们可能包含要修复的错误,因此捕获模式的版本并使用某种机制来绑定特定版本非常重要.
目前我有两种情况:
该错误在架构中找到,所有架构实例必须符合固定版本.
模式已升级,应该被视为首选,但也应支持旧模式.
最后,我想出了在架构的命名空间中存储版本信息:
targetNamespace="http://schemas.company.com/Geodesy/2010/River.xsd"
Run Code Online (Sandbox Code Playgroud)
在修复错误时我将其修复到同一个命名空间中,但如果我要升级模式,那么我需要创建一个新的命名空间但添加了升级月份:
targetNamespace="http://schemas.company.com/Geodesy/2010/01/River.xsd"
Run Code Online (Sandbox Code Playgroud)
如果我在一个月内进行了多次升级,那么也只需追加一天:
targetNamespace="http://schemas.company.com/Geodesy/2010/01/17/River.xsd"
Run Code Online (Sandbox Code Playgroud)
你知道更好的方法吗?
今天我在Mac OS X上发现了Git的一个bug.
例如,我将在开头提交一个名为überschrift.txt的文件,其中包含德语特殊字符Ü.从命令git status我得到以下输出.
Users-iMac: user$ git status
On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# "U\314\210berschrift.txt"
nothing added to commit but untracked files present (use "git add" to track)
Run Code Online (Sandbox Code Playgroud)
似乎Git 1.7.2在Mac OS X上存在德语特殊字符的问题.是否有解决方案让Git读取文件名正确?
更改Maven项目版本,发布此版本然后返回*-SNAPSHOT开发的最佳方法是什么.
目前我正在做以下事情:
SNAPSHOT)pom.xmlmvn -DnewVersion=<something> versions:set),尊重问题Maven工件版本中描述的补丁规则mvn:install 发送回购SNAPSHOTpostfix.我有强烈的感觉,我做错了什么和/或效率低下.
我有一个只有一个分支(master)的存储库.我是我的回购的唯一贡献者.
我最近添加了一个tag,本地和推送到GitHub.在做了我最后一次必要的提交后,但现在我意识到我应该再做一次更改/提交.
所以我拥有的是:
commit 124
commit 125
commit 126 <-- tag v1.0
commit 127
Run Code Online (Sandbox Code Playgroud)
我想将v1.0标记移动到下一个提交,即:127,本地和GitHub.
我怎样才能做到这一点?
我们有一个多模块maven项目,它使用一个定义buildnumber-maven-plugin的配置文件来增加内部版本号,然后将其检入源代码控制.
如果我在父pom.xml中定义插件,它也会为所有子构建执行.
这是我的父pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.webwars</groupId>
<artifactId>parent</artifactId>
<packaging>pom</packaging>
<properties>
<buildNumber.properties>${basedir}/../parent/buildNumber.properties</buildNumber.properties>
</properties>
<version>1.0-SNAPSHOT</version>
<name>Parent Project</name>
<profiles>
<profile>
<id>release</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<debug>false</debug>
<optimize>true</optimize>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.0-beta-3</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
<configuration>
<buildNumberPropertiesFileLocation>${buildNumber.properties}</buildNumberPropertiesFileLocation>
<getRevisionOnlyOnce>true</getRevisionOnlyOnce>
<doCheck>false</doCheck>
<doUpdate>false</doUpdate>
<format>{0, number}</format>
<items>
<item>buildNumber</item>
</items>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>checkin</goal>
</goals>
</execution>
</executions>
<configuration>
<basedir>${basedir}</basedir>
<includes>buildNumber.properties</includes>
<message>[Automated checkin] of ${basedir} Build version: ${major.version}.${minor.version}.${buildNumber}</message>
<developerConnectionUrl>...</developerConnectionUrl>
</configuration> …Run Code Online (Sandbox Code Playgroud) 为了能够比较包的两个版本,我需要能够选择我加载的包的版本.R的软件包系统默认设置为覆盖现有软件包,因此您始终拥有最新版本.如何覆盖此行为?
到目前为止我的想法是:
我可以获取包源,编辑描述以提供不同的名称,并实际构建两个不同的包.我宁愿能够直接使用二进制文件,因为它不那么麻烦.
我不一定需要同时加载两个版本的软件包(只是同时安装在某个地方).我或许Sys.getenv('R_HOME')可以改变R安装包.libpaths()的地方,然后改变R寻找它们的地方.这看起来很酷,所以有没有人有更好的想法?
我想在应用程序中添加"检查更新"按钮,以便当有人单击它时,它将显示一个用于检查应用程序版本的Toast消息/进度对话框.
如果找到新版本,应用程序将自动将其下载到手机,并允许用户手动安装更新的应用程序.
或者任何其他方法都可以,只要它可以检查最新版本并通知用户更新.
关于在数据库中对数据进行版本控制,我已经阅读了关于SO的一些问题(比如这一个).
我喜欢上面提到的一些建议.我有最长的时间想要(需要)修改我的许多桌子,但从来没有绕过它.作为一个只有简单的数据库工作的程序员,我想知道如何才能真正做到这一点.
我不是要求SQL语法中的实际解决方案.我最终可以为自己解决这个问题(或者在时机成熟时发布).我只是要求人们评论他们将如何进行评论以及如果我要"修改"数亿条记录,可能会出现任何潜在的性能问题.或者任何其他建议,只要它基于以下示例.
举个简单的例子:
Person
------------------------------------------------
ID UINT NOT NULL,
PersonID UINT NOT NULL,
Name VARCHAR(200) NOT NULL,
DOB DATE NOT NULL,
Email VARCHAR(100) NOT NULL
Audit
------------------------------------------------
ID UINT NOT NULL,
UserID UINT NOT NULL, -- Who
TableName VARCHAR(50) NOT NULL, -- What
OldRecID UINT NOT NULL, -- Where
NewRecID UINT NOT NULL,
AffectedOn DATE NOT NULL, -- When
Comment VARCHAR(500) NOT NULL -- Why
Run Code Online (Sandbox Code Playgroud)
如果TableName是一个字符串,我不确定如何将Audit表链接到任何其他表(例如Person)?
另外,假设我有三个GUI来填充:
要完成1和2,查询Person表或Audit表会更好吗?
要完成3,所谓的数据库专家是否只需获取所有记录并将其传递给软件进行处理,或按PersonID和受影响日期分组?这通常是在一个查询中处理还是多个?