小编Luí*_*rme的帖子

如何将svn分支和标签导入git-svn?

我有一个我必须承诺的中央SVN存储库,但我对git充满热情(就像我认识的任何其他开发人员一样).这个案子众所周知.

然后我读了一下git-svn并尝试了一下.由于我不需要完整的历史,仅仅两个月左右,我就是这样的:

git svn clone -r 34000 -s https://svn.ourdomain.com/svn/repos/Project/SubProject
Run Code Online (Sandbox Code Playgroud)

像往常一样,SubProject拥有子目录trunk,tagsbranches.大.

然后,为了获得最后一次修订,我做到了

git svn rebase
Run Code Online (Sandbox Code Playgroud)

有些下载,很棒.最后修订,日志等等,好的,现在我将切换到我的功能分支.

$ git branch 
* master
Run Code Online (Sandbox Code Playgroud)
$ git branch -r  
  trunk
Run Code Online (Sandbox Code Playgroud)
$ git branch -a  
* master
  remotes/trunk
Run Code Online (Sandbox Code Playgroud)

问题是:我的分支在哪里?我做错了什么吗?我怎么做才能在新的git仓库中获得我的分支机构?

git-svn,无论我在哪里阅读它,明智地处理分支和标签,但行为不是我所期望的.谢谢!

编辑:我刚刚发现git svn fetch将会这样做.但它会得到所有修改,这是我不喜欢的.

svn git git-svn

67
推荐指数
6
解决办法
5万
查看次数

set <pair>和C++中的map之间有什么区别?

我可以通过两种方式轻松地在C++ STL中创建一个关键的值属性:映射和对的集合.例如,我可能有

map<key_class,value_class>
Run Code Online (Sandbox Code Playgroud)

要么

set<pair<key_class,value_class> >
Run Code Online (Sandbox Code Playgroud)

在算法复杂性和编码风格方面,这些用法有何不同?

c++ stl map set data-structures

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

处理间隔的数据结构

我有一系列时间间隔(t_start,t_end),它们不能重叠,即:t_end(i)> t_start(i + 1).我想做以下操作:

1)添加新的(联合)区间[{(1,4),(8,10)} U(3,7)= {(1,7),(8,10)}]
2)取出间隔[ (1,7) - (3,5)= {(1,3),(5,7)}
3)检查点或间隔是否与我的系列(交叉点)中的间隔重叠
4)找到第一个"在某个点[{(1,4),(7,8)}之后的最小长度的非间隔":在4和7之间存在长度为3的"非间隔".

我想知道实现这个的好方法,复杂度低(所有操作的log n都可以).

相关问题:查询快速时间间隔的数据结构

algorithm tree intervals data-structures

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

在Windows上搜索DLL

在Linux上,我们拥有LIBRARY_PATHLD_LIBRARY_PATH以环境变量的程序搜索库.我们在窗户上有类似的东西吗?特别是Windows 7?

此外,我想知道DLL使用的最佳实践(在哪里放置它们,使用envs或不使用envs等),因为我想像所有人一样在Windows上工作,而不是懒散于解决方法:)

dll environment-variables windows-7

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

解析python中可以采用多种格式的日期

我想解析一个可以预先知道的几种格式的日期.如果我无法解析,我会返回零.在ruby中,我喜欢这样:

DATE_FORMATS = ['%m/%d/%Y %I:%M:%S %p', '%Y/%m/%d %H:%M:%S', '%d/%m/%Y %H:%M', '%m/%d/%Y', '%Y/%m/%d']

def parse_or_nil(date_str)
    parsed_date = nil
    DATE_FORMATS.each do |f|
        parsed_date ||= DateTime.strptime(date_str, f) rescue nil
    end
    parsed_date
end
Run Code Online (Sandbox Code Playgroud)

这是简洁而有效的.我怎样才能在Python中做同样的事情?

ruby python datetime parsing

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

特定意图的二进制搜索树

我们都知道有很多自平衡二分查找树(BST),最着名的是红黑和AVL.看看AA树和替罪羊树也许有用.

我想删除插入和搜索,就像任何其他BST一样.但是,删除给定范围内的所有值或删除整个子树是很常见的.所以:

  1. 我想在O(log n)(平衡树)中插入,搜索,删除值.
  2. 我想删除一个子树,保持整个树平衡,在O(log n)(最坏情况或摊销)
  3. 在平衡树之前,删除行中的多个值可能很有用
  4. 我通常会一次插入2个值,但这不是一个规则(如果有一个树数据结构考虑到这一点,只是一个提示)

是否有AVL或RB的变体可以帮助我吗?替罪羊树看起来更像这样,但也需要一些改变,任何有经验的人都可以分享一些东西?

更准确地说,哪种平衡程序和/或删除程序可以帮助我保持这项行动的时间效率?

algorithm binary-tree data-structures

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

使用Moq和C#调用Func作为参数传递给模拟

我有一个看起来像这样的模拟方法:


class NotMineClass {
  T Execute(Func operation) 
  {
    // do something
    return operation();
  }
}
Run Code Online (Sandbox Code Playgroud)

在我的代码中,我这样做:


public MyType MyMethod()
{
  MyType object = new MyType();
  bool success = notMineClassInstance.Execute(() =>
  {
    // some things
    retVal = injectedObject1.method();
    object.attribute = injectedObject2.method();
    // some other things
    return retVal;
  }
  if (success) 
  {
    object.otherAttribute = someValue;
  }
  return object;
}
Run Code Online (Sandbox Code Playgroud)

我的情况是,我正在使用Moq测试MyMethod,我想验证Func行为是否符合预期.我体内有一些被注射的物体,它们是模拟物,应该经过验证; 它也开始构建我的返回值,所以除非我调用作为参数传递的函数,否则我不能做任何断言.

在Java和jUnit + EasyMock中,我会捕获传递的参数,如下所示:


public void testMyMethod() {
  // ...
  Capture < Function < void, Boolean > > functionCapture = Captures.last();
  expect(notMineClassInstance.execute(EasyMock.capture(functionCapture))); …
Run Code Online (Sandbox Code Playgroud)

.net c# moq xunit capture

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

在C++中为每个方法调用执行某些代码

我有一个我想要检查的C++类.所以,我希望所有方法在出门之前打印他们的参数和返回.

后者看起来有点容易.如果我为一切返回(),一个宏

#define return(a) cout << (a) << endl; return (a)
Run Code Online (Sandbox Code Playgroud)

如果我将所有返回括号化为括号(或者可以调用的任何东西),它会做(可能是错误的).如果我想把它拿出来,只需注释掉定义.

但是,打印输入似乎更难.有没有办法,我可以使用C++结构或workaroud黑客?

c++ methods

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

使分支等于另一个分支

我有两个git分支,branch_a和branch_b,两者都是分支主机.

我推了branch_a.但是,我想重置branch_a上的所有更改并将它们交换为branch_b上的更改.

我可以使用reversion提交将branch_a恢复到分歧点,然后在branch_b中合并branch_b或rebase branch_a.有更简单的方法吗?有没有办法说:"创建一个提交,使branch_a中的文件变得完全等于branch_b"?我不想解决冲突.branch_a是错误的,branch_b是对的.但是我无法重置为branch_b,因为我已经推送了branch_a.

git git-branch

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

使用类/方法的不同实现的设计模式

有时我们设计不止一种算法来获得相同的结果。例如,我编写了一个类将我的数据存储在树中,另一个类将大致相同的数据存储在链表中。

我将发布一个名为 ThingStore 的接口(抽象类),并将其子类化为 TreeThingStore 和 ListThingStore,每个都分别使用树或链表。

但是,由于我正在发布一个抽象类,因此我必须有人来决定要使用哪个实现(编辑:因此调用者不会关心这一点),并且我对此进行硬编码没有问题。我不止一次需要这个,但是我没有成功地查看 GoF 和其他设计模式目录。最相似的模式是“战略”模式,但它实现了不同的目标。

那么,是否有针对此意图的设计模式?如果没有,有人可以创建一个或告诉我为什么不应该这样做(或实现相同结果的更好方法)?

oop design-patterns

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

Python拉皮条/猴子补丁

我想做一件简单的事情:monkey-patch datetime。我不能完全那样做,因为datetime是 C 类。

所以我写了下面的代码:


from datetime import datetime as _datetime

class datetime(_datetime): def withTimeAtMidnight(self): return self.replace(hour=0, minute=0, second=0, microsecond=0)

这是在我称为 pimp 的包中名为 datetime.py 的文件中。

从我得到的错误消息中:

回溯(最近一次调用最后一次):
  文件“run.py”,第 1 行,在 
    从 pimp.datetime 导入日期时间
  文件“/home/lg/src/project/library/pimp/datetime/datetime.py”,第 1 行,在 
    从日期时间导入日期时间为 _datetime
导入错误:无法导入名称日期时间

我假设我不能有一个名为datetime从另一个名为datetime.

我应该如何继续保持我的模块和类的命名datetime

python datetime python-import

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

Django ModelForm中的反转逻辑

我在Django中有一个模型,它有一个public布尔字段来控制条目是公共的还是私有的.

但是,在表单中,我应该显示一个反向逻辑:private设置的复选框.

class MyModelForm(forms.ModelForm):
    private = forms.BooleanField(label="Make this entry private")

    class Meta:
        model = models.MyModel
Run Code Online (Sandbox Code Playgroud)

我该怎么走?

django django-forms

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