小编Dra*_*788的帖子

Git Fetch无法在裸仓库上运行,但git pull适用于普通仓库

首先,大局:我正在尝试为我正在运行的Redmine/Gitolite服务器编写一个git post-receive脚本.根据各种建议,我正在为Redmine创建一个裸的本地存储库来读取,我正在Gitolite上设置一个接收后脚本,以便将更改推送到Redmine存储库中.

但是,我对Git非常苛刻,所以我甚至无法在这里做一个简单的任务> _ <.我想如果我弄清楚这一点,我应该能够编写上面的脚本.在设置我的测试回购后,我创建了两个repos作为测试.

("Central Repo"是git @ localhost:测试中的Gitolite存储库)

cd /tmp
mkdir /tmp/test
$ git clone git@localhost:testing
$ git clone git@localhost:testing testing2
$ git clone git@localhost:testing --bare
Run Code Online (Sandbox Code Playgroud)

现在当我运行ls时:

$ ls
testing  testing2  testing.git
Run Code Online (Sandbox Code Playgroud)

现在,我更改了测试2中的测试文件,然后将更改推送到中央存储库.

$ cd testing2
$ echo 'testline' >> test && git commit --allow-empty-message -a -m '' && git push 
Run Code Online (Sandbox Code Playgroud)

正如所料,如果我在"testing"文件夹上运行"git pull",一切都按预期工作.

$ cd testing
$ git pull
remote: Counting objects: 5, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From …
Run Code Online (Sandbox Code Playgroud)

git

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

数据库的ID最佳实践

我想知道构建和存储ID的最佳实践是什么.几年前,一位教授告诉我一个身份不良的身份证制度的危险,以社会保障号码为例.特别是,因为SSN没有任何错误检测......不可能分辨出9位数字符串和有效SSN之间的区别.现在,政府机构需要使用Last Name + SSN或Birthday + SSN等内容来跟踪您的数据并确保其验证.此外,根据您出生的地点,您的社会安全号码可以预测.

现在我正在构建一个用户数据库......并且基于这个建议"userid mediumint auto_increment"将是不可接受的.特别是如果我打算使用此ID作为用户的主要标识.(例如,如果我允许用​​户更改其用户名,那么用户名将比数字用户ID更难以跟踪...需要级联外键等等.)电子邮件更改,用户名可以更改,密码更改..但是用户ID应该永远保持不变.

显然,auto_increment仅适用于surrogate_keys.也就是说,只有当您已经拥有主要识别机制时,它才是有用的快捷方式,但它不应该用作数据的"先天标识符".创建随机UUID看起来很有趣,但随机性让我失望.

所以我问:创建"主键"识别号码的最佳做法是什么?

sql language-agnostic identity auto-increment surrogate-key

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

在 Postgresql 中,如何使用“在时区”取消反转时区偏移

我正在尝试围绕 Postgresql 时区进行思考,但我似乎无法弄清楚这一点。EST 是美国的“东部标准时间”,通常是UTC-5

示例 1:基础测试

select '08/31/2011 12:00 pm EST'::timestamptz  at time zone 'EST';
      timezone       
---------------------
 2011-08-31 12:00:00
Run Code Online (Sandbox Code Playgroud)

示例 2:偏移量为 +5

select '08/31/2011 12:00 pm EST' at time zone '+5';
      timezone       
---------------------
 2011-08-31 12:00:00
Run Code Online (Sandbox Code Playgroud)

示例 3:偏移量为 -5

 select '08/31/2011 12:00 pm EST' at time zone '-5';
      timezone       
---------------------
 2011-08-31 22:00:00
Run Code Online (Sandbox Code Playgroud)

显然,一切都在倒退。EST 再次......应该是 UTC-5。现在,我确实搜索了文档,它确实解释了事物是“POSIX”,这是向后的。(正偏移位于格林威治标准时间以西,而负偏移位于格林威治标准时间以东)。

但是,我该如何解决这个问题?在应用程序层,我总是可以将 + 号反转为 - 号,但这对我来说似乎有点麻烦 IMO。因此,我的终极问题。

在数据库层(Postgres),有没有办法使用“At Time Zone”语法让 GMT-5 对应于 EST?或者我只需要在应用程序层反转所有内容?

postgresql timezone timezone-offset

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

存储转发地址与数据:英特尔优化指南中的STD和STA有什么区别?

我想知道是否有任何英特尔专家可以告诉我STD和STA在英特尔Skylake内核方面的区别。

在英特尔优化指南中,有一张图片描述了英特尔酷睿的“超标量端口”。

这是PDF。图片在第40页上。

这是相关图形的图片

这是第78页的另一张图片,该图片描述了“存储地址”和“存储数据”:

  1. 使用存储的数据地址准备存储转发和存储退出逻辑。

  2. 准备存储转发和存储退出逻辑以及要存储的数据。

考虑到Skylake可以在每个时钟周期执行一次#1 3x,但是在每个时钟周期只能执行一次#2,我很好奇这两者之间的区别。

在我看来,将存储转发到数据地址是“自然的”。但是我无法理解何时进行数据存储转发(又名:STD /端口4)。是否有任何组装/优化专家可以帮助我准确了解STD和STA之间的区别?

optimization performance assembly intel cpu-architecture

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