小编kfb*_*kfb的帖子

在Git中重新定位远程分支

我正在使用一个中间Git存储库镜像远程SVN存储库,人们可以从中进行克隆和处理.中间存储库的主分支从上游SVN每晚重新定位,我们正在开发功能分支.例如:

remote:
  master

local:
  master
  feature
Run Code Online (Sandbox Code Playgroud)

我可以成功地将我的功能分支推回到远程,并最终达到我的期望:

remote:
  master
  feature

local:
  master
  feature
Run Code Online (Sandbox Code Playgroud)

然后我重新设置分支以跟踪远程:

remote:
  master
  feature

local:
  master
  feature -> origin/feature
Run Code Online (Sandbox Code Playgroud)

一切都很好.我想从这里做的是将功能分支重新绑定到远程主分支,但我想从我的本地机器上执行此操作.我希望能够做到:

git checkout master
git pull
git checkout feature
git rebase master
git push origin feature
Run Code Online (Sandbox Code Playgroud)

使远程主控分支与远程主服务器保持同步.但是,这种方法导致Git抱怨:

To <remote>
 ! [rejected]        feature -> feature (non-fast-forward)
error: failed to push some refs to '<remote>'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again.  See the
'Note about fast-forwards' …
Run Code Online (Sandbox Code Playgroud)

git version-control branch rebase feature-branch

127
推荐指数
3
解决办法
12万
查看次数

Boost.Asio:在async_read上取消了操作

我自己与Boost.Asio继续传奇的另一个...

我有一个简单的异步客户端和服务器,它使用async_write和async_read进行通信.客户端可以成功地将字节写入套接字,但服务器永远不会看到它们; 我在服务器上的读取处理程序失败并显示"取消操作".

我倾向于认为这可能是客户端在服务器尝试读取并失败写入数据的时间问题,但我原本认为数据将在套接字上等待(除非套接字已经在此期间关闭).

为了测试这个,我只是在错误处理程序中重新运行读取操作,即

read_handler()
{
    if (!error) {
        /* bytes read */
    } else {
        async_read(socket, buffer, read_handler)
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,这一切让我在一个segfault pthread_mutex_lock通过一个呼叫async_receive.

任何人都可以指出我的任何相关信息的方向(或者,更好的是,告诉我到底我做错了什么;))?

更新:服务器和客户端基于Asio文档中的聊天服务器示例,客户端和服务器都在相同的进程下运行(这可能是一个问题吗?想多一点,他们都使用相同的io_service ...) ; 异步和使用Boost 1.44.0.我正在研究OS X,但这在Linux上也是可重现的.

更新II:我的预感是正确的,如果给服务器和客户端单独的io_service对象,async_read会看到套接字上的字节.这仍然给出了一个段落错误boost::asio::detail::kqueue_reactor::post_immediate_completion,似乎源于io_service.run().在我进一步研究之前,使用单独的io_service对象是正确的方法吗?

sockets boost boost-asio

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

使用boost :: lock_guard进行简单的共享数据锁定

我是Boost库的新手,我正在尝试实现一个在共享队列上运行的简单生产者和消费者线程.我的示例实现如下所示:

#include <iostream>
#include <deque>
#include <boost/thread.hpp>

boost::mutex mutex;
std::deque<std::string> queue;

void producer() 
{
    while (true) {
        boost::lock_guard<boost::mutex> lock(mutex);

        std::cout << "producer() pushing string onto queue" << std::endl;

        queue.push_back(std::string("test"));
    }
}

void consumer()
{
    while (true) {
        boost::lock_guard<boost::mutex> lock(mutex);

        if (!queue.empty()) {
            std::cout << "consumer() popped string " << queue.front() << " from queue" << std::endl;

            queue.pop_front();
        }
    }
}

int main()
{
    boost::thread producer_thread(producer);
    boost::thread consumer_thread(consumer);

    sleep(5);

    producer_thread.detach();
    consumer_thread.detach();

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这段代码按照我的预期运行,但是当main退出时,我得到了

/usr/include/boost/thread/pthread/mutex.hpp:45:    
    boost::mutex::~mutex(): Assertion `!pthread_mutex_destroy(&m)' …
Run Code Online (Sandbox Code Playgroud)

c++ boost mutex locking

14
推荐指数
3
解决办法
3万
查看次数

MSI中的背景图像应该是多大?

我正在尝试使用Wix创建Windows Installer程序包.我收到了很多关于我的自定义背景应该是什么尺寸的相互矛盾的信息--Wix文档建议尺寸为500 x 314像素,但这会导致安装程序中出现轻微的图像失真.

我相信我可能SplashBitmap在Windows Installer中间接使用该属性,其文档建议480 x 320是正确的大小.当我尝试使用这个图像大小时,我也会在图像中看到人工制品.

谁能告诉我正确的尺寸应该是什么?

windows-installer background wix image

9
推荐指数
3
解决办法
1万
查看次数

从Ruby的反引号中捕获"命令未找到"错误?

有没有办法在Ruby脚本中捕获"命令未找到"错误?例如,给定:

output = `foo`
Run Code Online (Sandbox Code Playgroud)

如何捕获foo未安装的情况?我希望我可以rescue例外,但这似乎不适用于1.8.7.是否有一种不同的方式来调用子进程来执行我想要的操作?还是有不同的方法?

更新

我很抱歉,我忘了提到一个隐藏的要求:我希望解释器不会将命令行泄漏给用户(它可能包含敏感数据),因此首选异常捕获方法.再次道歉,第一次离开这个.

ruby subprocess backticks

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

Windows注册表变量与环境变量?

乍一看,这似乎是一个纯粹的主观/美学问题,但我有兴趣听听关于环境变量或注册表是否是在Windows环境中存储配置数据的首选位置的意见(尤其是任何技术问题).

我目前只能想到以下差异:

  • 注册表设置在会话中是持久的,但我相信环境变量也可以具有此属性.
  • 从命令行到使用设置环境变量更容易 regedit
    • (反驳:regedit非命令行应用程序更容易?)
  • 环境变量在平台上更常见(?).

我也知道可以从注册表中查询,修改和设置环境变量.

registry environment-variables

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

停止分布式Ruby服务

我有一个启动DRb服务的脚本,然后生成一个处理程序对象并等待通过DRb.thread.join.我想脚本运行直到明确杀死,所以我补充说

trap "INT" do
  DRb.stop_service
end
Run Code Online (Sandbox Code Playgroud)

它成功地停止了DRb服务并在Ruby 1.8下退出,但在1.9下似乎死锁(在OS X 10.6.7上).采样过程显示出几条线程在旋转semaphore_wait_signal_trap.

我假设我在打电话的方式做错了stop_service,但我不确定是什么.任何人都可以给我任何指示如何正确地去做它?

ruby distributed drb ruby-1.9 ruby-1.8

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

是否有可能通过 pyGithub 获得发布

我还没有使用过 PyGithub,但我很好奇是否有可能从存储库(例如https://github.com/{username}/{repo-name}/releases)获取发布列表。我在此处的文档中看不到任何相关信息。

python github-api pygithub

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

Github API 按 created_at 字段对搜索结果进行排序

如何创建按created_at字段排序的搜索查询?我试过了:

https://api.github.com/search/repositories?q=blog&sort=created_at&order=desc
Run Code Online (Sandbox Code Playgroud)

https://api.github.com/search/repositories?q=blog&sort=created&order=desc
Run Code Online (Sandbox Code Playgroud)

但我得到与此查询相同的结果:

https://api.github.com/search/repositories?q=blog
Run Code Online (Sandbox Code Playgroud)

api github github-api

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

Github API批准了拉取请求

Github有一项新功能,用户可以批准拉取请求.有谁知道在Github API中哪里可以找到Pull Request批准的统计数据?

github github-api

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