我正在尝试从 Go 二进制文件中读取版本控制信息,但构建信息似乎不包含任何 VCS 信息。
来自 Go 1.18发行说明:
go 命令现在将版本控制信息嵌入到二进制文件中。它包括当前签出的修订版本、提交时间以及指示是否存在已编辑或未跟踪文件的标志。如果在 Git、Mercurial、Fossil 或 Bazaar 存储库内的目录中调用 go 命令,并且主包及其包含的主模块位于同一存储库中,则会嵌入版本控制信息。使用标志 -buildvcs=false 可以省略此信息。
示例程序:
package main
import (
"fmt"
"runtime/debug"
)
func main() {
if bi, ok := debug.ReadBuildInfo(); ok {
fmt.Printf("%+v\n", bi)
}
}
Run Code Online (Sandbox Code Playgroud)
使用此代码,这是我的输出:
走走1.18 路径[已编辑] mod [已编辑](开发) dep [已编辑] v1.2.3 构建-编译器=gc 构建 CGO_ENABLED=1 构建 CGO_CFLAGS= 构建 CGO_CPPFLAGS= 构建 CGO_CXXFLAGS= 构建 CGO_LDFLAGS= 构建 GOARCH=amd64 构建 GOOS=windows 构建 GOAMD64=v1
我希望看到这一点,但没有:
构建 vcs=git 构建 vcs.revision=[sha] 构建 vcs.time=2022-03-28T03:11:12Z 构建 vcs.modified=true
我正在go从 git …
我正在使用队列工作器处理 Laravel 应用程序,它刚刚开始失败并向日志抛出持续的异常流。这是其中之一:
SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '2019-03-10 02:00:39' for column 'updated_at' at row 1 (SQL: update `videos` set `updated_at` = 2019-03-10 02:00:39 where `id` = 30860)
Run Code Online (Sandbox Code Playgroud)
需要注意的几点:
updated_at字段由 Laravel 默认值管理,日期格式没有任何自定义发生git checkout .并composer install确保没有任何库文件以某种方式更改或损坏(没有更改)2019-03-10 02:00:39(UTC),即当地时间晚上 8 点明尼苏达州 2019 年夏令时将于 3 月 10 日星期日凌晨 2:00 开始
- 谷歌
我在谷歌上能找到的一切都与使用明显错误的时间格式的人有关,所以这并没有帮助我弄清楚。
我觉得在夏令时应该在美国中部时间02:00 开始的同一天02:00 UTC开始的错误之间有太多的巧合,但我不知道为什么会这样当时间戳由框架管理并在保存之前转换为 …
我想要实现的是从 URL 中删除 /storage ,以便最终它是www.example.com/images/x.jpg而不是默认的www.example.com/storage/x.jpg.
我试过像这样从urlin 中删除 /storage config/filesystems.php:
// Original
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL') . '/storage',
'visibility' => 'public',
],
// Modified
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL'), // <-- changed
'visibility' => 'public',
],
Run Code Online (Sandbox Code Playgroud)
但它不起作用。我认为问题是如果没有前缀,它将被视为公共文件夹中的文件。
是否有可能实现我想要实现的目标?