标签: auto-versioning

如何在每次提交时提交Subversion修订版,以便在两个存储库之间进行引用

考虑在两个单独的存储库Pub和Priv中分发的软件。Pub存储库是公共的。私有已关闭。当任何一方发生更改时,连续集成服务器都会同时构建Pub和Priv。然后,它会从Priv创建可下载的二进制文件,供Pub用户使用。这些二进制文件在内部以及带有Subversion修订版的文件名上标记。

问题是:如何使从Pub生成的程序知道正确的,对应的Priv版本号,以便它们可以自动下载并运行?

当前的解决方案是让构建服务器修改Pub中的文件,以设置Priv的修订号并将这些更改提交给Pub。但是,这带来了两个重大问题:

  1. 该构建需要花费很长时间,因此,如果有人在构建期间将更改提交到Pub(或Priv),则会产生冲突。可以强制解决该问题,但是日志历史记录看起来很奇怪,好像这些修订使它进入了该内部版本一样。

  2. Subversion日志中有许多条目,例如“自动构建更新了版本”。从每次构建运行开始都会污染本来有益的Subversion日志。

因此,我们可以通过不需要更改存储库的方式来做到这一点。

真诚的韦恩

svn versioning revision repository auto-versioning

5
推荐指数
1
解决办法
881
查看次数

在 nginx 中自动版本控制 CSS/JS

我有一个设置,其中 nginx 提供所有静态内容(CSS/JS)。我们的问题是,当我们更新静态内容时,浏览器不一定会立即更新它们,这会导致我们在推送新版本时出现问题。

我想要一个 nginx 插件,它基本上可以替换对 CSS/JS 的所有调用,并添加一个版本号,如下所示:

前:

<link rel="stylesheet" type="text/css" href="/media/css/style.css" />
Run Code Online (Sandbox Code Playgroud)

后:

<link rel="stylesheet" type="text/css" href="/media/css/style.css?3428432" />
Run Code Online (Sandbox Code Playgroud)

并根据 style.css 文件本身的最新更改日期自动执行此操作。所以我不必更新 HTML。有这个插件吗?我知道谷歌的 mod_pagespeed 在他们的 apache2 模块中做了类似的事情......但我找不到任何人使用 nginx。

versioning nginx auto-versioning

4
推荐指数
1
解决办法
2815
查看次数

在Golang应用程序中,如何将版本嵌入除main之外的其他软件包中?

受这个SO问题的启发,我想使用相同的机制在我的golang应用程序中嵌入版本号。但是我正在使用Cobra命令行解析器,并希望有一个version子命令。这将导致以下目录和包结构:

.
|-- cmd                                                                   
`-- version.go                                                    
|-- main.go                                                           
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经尝试了以下方法:

go run -ldflags "-X cmd/version.versionString=0.1.0" main.go version
Run Code Online (Sandbox Code Playgroud)

--

go run -ldflags "-X version.versionString=0.1.0" main.go version
Run Code Online (Sandbox Code Playgroud)

--

go run -ldflags "-X version.VersionString=0.1.0" main.go version
Run Code Online (Sandbox Code Playgroud)

随着version.go包含像这样的变量声明:

var versionString string
Run Code Online (Sandbox Code Playgroud)

和

var VersionString string
Run Code Online (Sandbox Code Playgroud)

分别。

我也尝试过将变量声明放进去,main.go但是我不清楚如何为version.go我尝试过的这个选项引用变量:

import "github.com/basbossink/psiw"
....
fmt.Println(psiw.VersionString)
Run Code Online (Sandbox Code Playgroud)

--

import "github.com/basbossink/psiw/main"
...
fmt.Println(main.VersionString)
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,编译器都会抱怨psiw和main分别未知。请注意,使用VersionStringin main将提供预期的结果。

我更喜欢一种解决方案,其中链接标志指向version程序包中的变量,因为它们不需要反向指针。但是任何建议都欢迎。

version auto-versioning go

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

创建emacs org-mode文件的自动历史记录(版本控制)

我喜欢Emacs org-mode但我有时希望在写一个特定的行或做出具体的改变时能说出来.

如果有一个自动版本控制机制可以跟踪所有更改(或增量),比如说每个小时和所有更改的时间戳,那就太棒了.

有什么建议?

emacs version-control auto-versioning org-mode

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