小编hil*_*llu的帖子

在git中,有一种简单的方法可以将不相关的分支引入存储库吗?

在帮助朋友解决git问题的同时,我不得不介绍一个需要与分支完全分离的master分支.这个分支的内容确实与master分支上开发的内容有不同的起源,但它们将master在以后合并到分支中.

我记得从底层向上阅读John Wiegley的Git,分支本质上是一个遵循某个约定的提交的标签,以及如何将提交绑定到文件树,并且可选地绑定到父提交.我们使用git的管道创建了对现有存储库的无父提交:

所以我们摆脱了索引中的所有文件......

$ git rm -rf .
Run Code Online (Sandbox Code Playgroud)

...从tarball中提取目录和文件,将其添加到索引中...

$ git add .
Run Code Online (Sandbox Code Playgroud)

...并创建了一个树对象......

$ git write-tree
Run Code Online (Sandbox Code Playgroud)

(git-write-tree告诉我们创建的树对象的sha1sum.)

然后,我们提交了树,没有指定父提交......

$ echo "Imported project foo" | git commit-tree $TREE
Run Code Online (Sandbox Code Playgroud)

(git-commit-tree告诉我们创建的提交对象的sha1sum.)

...并创建了一个指向新创建的提交的新分支.

$ git update-ref refs/heads/other-branch $COMMIT
Run Code Online (Sandbox Code Playgroud)

最后,我们回到master分公司继续在那里工作.

$ git checkout -f master
Run Code Online (Sandbox Code Playgroud)

这似乎按计划进行.但这显然不是我推荐给刚刚开始使用git的人的一种程序,温和地说.有没有更简单的方法来创建一个与目前存储库中发生的所有内容完全无关的新分支?

git branch

318
推荐指数
7
解决办法
8万
查看次数

在Perl中,子例程如何获得指向自身的coderef?

出于学习目的,我正在研究在Perl中构建事件驱动程序的想法,并注意到如果注册为事件处理程序的子例程在失败时只能为其自身安排另一个调用它可能会很好时间.到目前为止,我想出了类似的东西:

my $cb;
my $try = 3;
$cb = sub {
    my $rc = do_stuff();
    if (!$rc && --$try) {
        schedule_event($cb, 10); # schedule $cb to be called in 10 seconds
    } else {
        do_other_stuff;
    }
};
schedule_event($cb, 0); # schedule initial call to $cb to be performed ASAP
Run Code Online (Sandbox Code Playgroud)

有没有办法让sub中的代码可以访问该sub的coderef,所以我可以不使用额外的变量?我想安排这样的初始通话.

schedule_event( sub { ... }, 0);
Run Code Online (Sandbox Code Playgroud)

我首先考虑使用caller(0)[3],但这只给了我一个函数名称(__ANON__如果没有名称),而不是附加了pad的代码引用.

perl

26
推荐指数
4
解决办法
1112
查看次数

使用分布式版本控制系统的最酷/最不寻常的黑客是什么?

我已经使用git工作了几个月,我发现大部分能够改善我日常工作的事情可以归结为分布式VCS中的灵活性和缺乏强制执行的默认策略.

很多人似乎都有同样的感受,并建立在这种灵活性的基础上

  • 我已经阅读了很多用户在不同机器上同步主目录的报告.
  • IkiWiki基于源代码控制,可以用作分布式维基.
  • 存在一些基于git构建的分布式错误/问题跟踪系统(不确定其他DVCS).

使用自己喜欢的DVCS实现了哪些很酷的想法?

git mercurial dvcs bazaar

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

为什么这个XS代码会返回PerlIO*漏洞?

我正在尝试编写一些XS代码,它将一个库公开给Perl代码作为可以写入的流接口.get_stream下面的 函数应该是一个准备和返回PerlIO对象的构造函数.我想我只需要 WriteClose方法,所以我把所有其他功能插槽留空了.

typedef struct {
    struct _PerlIO base;
    mylib_context* ctx;
} PerlIOmylib;

/* [...] */

PERLIO_FUNCS_DECL(PerlIO_mylib_funcs) = {
.fsize = sizeof(PerlIO_funcs),
.name  = "mylib",
.size  = sizeof(PerlIOmylib,
.Write = mylib_write,
.Close = mylib_close,
};

/* XS below */

PerlIO*
get_stream (SV* context_obj)
CODE:
mylib_context* ctx = (mylib_context*) SvIV (SvRV (context_obj));
PerlIO* f = PerlIO_allocate (aTHX);
f = PerlIO_push (aTHX, f, PERLIO_FUNCS_CAST(&PerlIO_mylib_funcs), "a", NULL);
PerlIOSelf(f, PerlIOmylib)->ctx = ctx;
PerlIOBase(f)->flags |= PERLIO_F_OPEN;
RETVAL = f;
OUTPUT: …
Run Code Online (Sandbox Code Playgroud)

perl xs perl-io

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

在Perl中,将字符串转换为字符列表的理智方法是什么?

我一直想知道是否有一种更好,更简洁的方法将字符串拆分为字符

@characters = split //, $string
Run Code Online (Sandbox Code Playgroud)

并不难读,但不知何故,使用正则表达式对我来说太过分了.

我想出了这个:

@characters = map { substr $string, $_, 1 } 0 .. length($string) - 1
Run Code Online (Sandbox Code Playgroud)

但我发现它更丑陋且不太可读.将字符串拆分为字符的首选方法是什么?

string perl split

6
推荐指数
4
解决办法
381
查看次数

Perl 5.12中最有趣/最有用的新东西是什么?

我记得迅速采用given .. when,say,//,和智能匹配运算时的Perl 5.10苏醒过来.

你认为Perl 5.12.0引入了哪些最有用的修补程序和功能?

perl

5
推荐指数
3
解决办法
614
查看次数

使用pod2html生成带有自定义文本的http链接的正确语法是什么?

perlpod文档告诉我,我可以使用L<scheme:...>或链接到URL L<text|scheme:...>,甚至列出L<The Perl Home Page|http://www.perl.org/>作为示例.

第一种情况对我来说很好:pod2html

L<http://example.com/>
Run Code Online (Sandbox Code Playgroud)

<a href="http://example.com/">http://example.com/</a>
Run Code Online (Sandbox Code Playgroud)

但它失败了

L<example|http://example.com/>
Run Code Online (Sandbox Code Playgroud)

刚刚变成了

<em>example</em>
Run Code Online (Sandbox Code Playgroud)

以及警告:

/usr/bin/pod2html: : cannot resolve L<example|http://example.com/> in paragraph 2.
Run Code Online (Sandbox Code Playgroud)

我会期待类似的东西

<a href="http://example.com/">example</a>
Run Code Online (Sandbox Code Playgroud)

要生产.我怎样才能做到这一点?

更新所以这似乎是Pod::HtmlAlan Haggai Alavi指出的一个错误.有解决方法吗?

perl pod

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

如何恢复损坏的python"cPickle"转储?

rss2email用于将大量RSS源转换为邮件以便于使用.也就是说,我使用它,因为它在一个可怕的方式打破了今天:在每次运行时,它只是给了我这个回溯:

Traceback (most recent call last):
  File "/usr/share/rss2email/rss2email.py", line 740, in <module>
    elif action == "list": list()
  File "/usr/share/rss2email/rss2email.py", line 681, in list
    feeds, feedfileObject = load(lock=0)
  File "/usr/share/rss2email/rss2email.py", line 422, in load
    feeds = pickle.load(feedfileObject)
TypeError: ("'str' object is not callable", 'sxOYAAuyzSx0WqN3BVPjE+6pgPU', ((2009, 3, 19, 1, 19, 31, 3, 78, 0), {}))
Run Code Online (Sandbox Code Playgroud)

我能够从这个回溯构建的唯一有用的事实是,保持其所有配置和运行时状态的文件~/.rss2email/feeds.datrss2email某种方式被破坏.显然,rss2email读取其状态并cPickle在每次运行时将其转储回来.

我甚'sxOYAAuyzSx0WqN3BVPjE+6pgPU'至在巨型(> 12MB)feeds.dat文件中找到了包含上述字符串的行.对于我未经训练的眼睛,转储似乎没有被截断或以其他方式损坏.

我可以尝试哪些方法来重建文件?

在Debian/unstable系统上,Python版本是2.5.4.

编辑

Peter Gibson和JF Sebastian建议直接从pickle文件加载,我之前尝试过.显然,需要一个Feed定义的类 …

python rss pickle

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

在什么语言中有"守护"关键字或概念?

我最近试图理解一个C++程序,这个程序是由我认为具有函数式编程背景的人编写的:例如,他已经声明了一个他广泛使用的闭包类,它有点类似于函数式编程中的闭包.另一个班级被称为后卫,但我还没有弄清楚它有什么好处.它似乎附加了某种清理功能.

我看到一个名为guard的概念的唯一语言是Erlang,但这并不像我发现的代码那样远程.在其他语言中存在这样一个概念,C++代码的作者可能提到过?

c++ class nomenclature

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

在Perl中,如何在不查看其大小的情况下检测(并列)数组是否为空?

我一直在修改隐藏绑定数组背后的IPC机制的一些实现细节的想法.目标是能够在服务器端执行类似的操作:

# setup code here. Client provides a function name, we find
# a function to deal with the request:
my $coderef = lookup($method);
local @_;
tie @_, 'My::IPC';
@ret = &$coderef;
Run Code Online (Sandbox Code Playgroud)

然后,My::IPC类将根据需要从管道/套接字读取序列化对象(通过SHIFTor FETCH 方法触发).

我想为服务器函数的作者提供一些方法来编写他可以访问IPC的函数,以便编写本地函数,即:

sub f1 {
    while (my $param = shift) {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

... 以及 ...

sub f2 {
    my ($foo, $bar, $baz, %flags) = @_;
    ...
}
Run Code Online (Sandbox Code Playgroud)

f1旨在能够处理可能大于可用RAM量的数据流 - 只要每个单独的对象在反序列化后适合RAM,一切都很好.f2 用于"更简单"的函数,其中参数列表可以插入RAM.

为了支持这两种情况下,该TIEARRAYconstuctor和SHIFT, FETCH和 …

arrays perl tie

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

标签 统计

perl ×6

git ×2

arrays ×1

bazaar ×1

branch ×1

c++ ×1

class ×1

dvcs ×1

mercurial ×1

nomenclature ×1

perl-io ×1

pickle ×1

pod ×1

python ×1

rss ×1

split ×1

string ×1

tie ×1

xs ×1