小编ora*_*ius的帖子

开源项目中git存储库的最佳实践

我正在为Github上一个相当小的开源项目做贡献.所以其他人可以利用我的工作,我在Github上创建了自己的分支.尽管Github选择了术语,但我不希望完全偏离主要项目.但是,我并不期望或希望我的所有工作都被接受到主存储库中.但是其中一些已经合并到主存储库中,我希望这会继续下去.我遇到的问题是如何最好地将我们的两棵树保持在一个可以轻松地在它们之间共享代码的状态.

我遇到或将遇到的一些情况包括:

  • 我提交的代码稍后被接受到主存储库中.当我将来从这个存储库中提取时,我的提交在我的存储库中重复.
  • 我提交的代码永远不会被接受到主存储库中.当我将来从这个存储库中取出时,两棵树已经发散并且修复它很难.
  • 另一个人出现并将他们的工作建立在我的存储库上.因此,我应该尽可能避免更改我推送的提交,例如使用git rebase.
  • 我希望将代码提交到主存储库.理想情况下,我的更改应该很容易转换为可以直接且干净地应用于主存储库的补丁(理想情况下使用git format-patch).

据我所知有两种,或者可能有三种方法来处理这种情况,其中没有一种方法效果特别好:

  • 经常运行git rebase以保持我的更改基于上游存储库的头部.通过这种方式,我可以消除重复的提交,但通常必须重写历史记录,从而为想要从我的工作中获取工作的人们带来问题.
  • 经常将上游存储库更改合并到我的中.这在我的结束时工作正常,但似乎不容易将我的代码提交到上游存储库.
  • 使用这些和可能的git cherry-pick的一些组合来保持秩序.

在这种情况下,其他人做了什么?我知道我的情况类似于各种内核贡献者和Linus的主存储库之间的关系,所以希望有很好的方法来处理这个问题.虽然我对git很新,所以还没有掌握它的细微差别.最后,特别是由于Github,我的术语可能不完全一致或正确.随意纠正我.

linux git version-control

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

当b为零时,为什么%b会产生SIGFPE?

今天我在我刚写的一些代码中追踪浮点异常.它需要一段时间才能找到,因为它实际上是由整数模零点引起的.显然做任何mod零的事情都不会被定义,但我认为错误是如此误导是很奇怪的.在C++模运算符中,它将使用两个整数的浮点数是什么?(我正在使用gcc 4.3.2)

这是一个演示错误的简单程序.

int main()
{
    int a=3,b=0;
    int c=a%b;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++

22
推荐指数
2
解决办法
2万
查看次数

同时捕获输出行数和返回代码

我正在编写一个 bash 脚本,它将调用一个程序(我们称之为 foo),该程序返回一些输出,并给出返回代码。我关心程序的返回码和输出的行数(但不关心输出本身)。由于该程序涉及通过互联网检索数据,因此我不希望调用它两次(特别是,如果两次调用中只有一次由于暂时性网络问题或类似问题而失败,则可能会导致问题)。我能想到的捕获输出行数和返回代码的最佳脚本如下。还有更优雅的吗?

#!/bin/bash
line=$(foo | wc -l; echo ${PIPESTATUS[0]})
line=$(echo line | tr '\n' ' ')
lineCount=$(echo line | awk '{ print $1}')
returnCode=$(echo line | awk '{ print $2}')
Run Code Online (Sandbox Code Playgroud)

bash

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

在Qt中从字符串输入的日期时间中处理时区的正确方法是什么

我正在使用Qt来解析包含UTC时间戳的XML文件.当然,在该计划中,我希望他们改为当地时间.在XML文件中,时间戳如下所示:"2009-07-30T00:32:00Z".

不幸的是,当使用QDateTime :: fromString()方法时,这些时间戳被解释为在本地时区.解决此问题的hacky方法是从此时加上或减去正确的时区偏移量,将其转换为"真正的"本地时间.但是,有没有办法让Qt意识到我正在导入UTC时间戳然后自动将其转换为本地时间?

c++ timezone qt datetime

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

标签 统计

c++ ×2

bash ×1

datetime ×1

git ×1

linux ×1

qt ×1

timezone ×1

version-control ×1