小编ДМИ*_*КОВ的帖子

Git pull取决于当前的dir

我正在git pull通过root用户从任何目录尝试某个存储库.

例如,在执行git pull/root/:

#> cd ~
#> sudo -u dmalikov git --git-dir=/home/dmalikov/path/to/repo/.git pull 
/usr/libexec/git-core/git-sh-setup: line 142: cd: /root/.: Permission denied
Cannot chdir to /root/., the toplevel of the working tree
Run Code Online (Sandbox Code Playgroud)

并执行git pull来自/:

#> cd /
#> sudo -u dmalikov git --git-dir=/home/dmalikov/path/to/repo/.git pull 
Already up-to-date.
Run Code Online (Sandbox Code Playgroud)

为什么当前目录会影响git pull命令?

如何cd避免多余的?

git git-pull

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

如何保存GVIM设置?

我刚安装GVIM,浏览菜单,并更改了一堆设置.

我关闭了GVIM,设置全部丢失了.:(

我再次做出了改变.

现在我如何保留我的设置?

vim

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

运营商超载

我想定义一个+-+在这里工作的运算符(调用它):

if a,b are Char    => a +-+ b = [a][b]
if a,b are Integer => a +-+ b = a+b
Run Code Online (Sandbox Code Playgroud)

我尝试过:

class Summable a where
    (+-+)       :: a -> a -> b

instance Summable Integer where
    a +-+ b     = a + b

instance Summable Char where
    a +-+ b     = [a] ++ [b]
Run Code Online (Sandbox Code Playgroud)

但是我得到了错误:

Couldn't match type `b' with `Integer'....
Couldn't match type `b' with `[Char]' ....
Run Code Online (Sandbox Code Playgroud)

是否有可能做到这一点?怎么样?

haskell operator-overloading

18
推荐指数
1
解决办法
677
查看次数

仅打印与正则表达式匹配的部件

echo "a b _c d _e f" | sed 's/[ ]*_[a-z]\+//g'

结果将是a b d f.

现在,我怎么能把它转过来,只打印_c _e,而不假设其余部分?

regex bash grep sed

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

条件中的Monadic表达式 - GHC编译,阴谋拒绝

在这一个人的头上划了一天.

我的代码中有一些函数看起来像这样:

function :: IO (Maybe Whatever)
function = do
   monadFun
   yaySomeIO
   status <- maybeItWillFail
   if checkStatus status  -- Did we succeed?
   then monadTime >>= return . Just . processItPurely
   else return Nothing
Run Code Online (Sandbox Code Playgroud)

ghci将以交互方式加载和运行它,没有任何问题,ghc将愉快地编译它.然而,通过cabal运行这个给了我:

myProgram.hs:94:16:
Unexpected semi-colons in conditional:
    if checkStatus status; then monadTime >>= return . Just . processItPurely; else return Nothing

Perhaps you meant to use -XDoAndIfThenElse?
Run Code Online (Sandbox Code Playgroud)

无论这个-XDoAndIfThenElse选项是什么,我似乎无法在任何文档中的任何地方找到它的痕迹.为什么是cabal(或者就此而言,这是什么?)对我使用IT首先放置的分号大吼大叫?或者在if-then-else语句中使用monadic表达式只是一个坏主意?

请注意,cabal根本没有抱怨这个:

case checkStatus status of
   True -> monadTime >>= return . Just . processItPurely
   _    -> return Nothing …
Run Code Online (Sandbox Code Playgroud)

haskell cabal

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

为什么Git命令的长结果会导致我的PowerShell提示失效?

我在Windows上使用Git Shell(PowerShell模块).这是我安装Git for Windows时安装的那个.当我运行导致大量文本的命令时,例如git log我得到一页结果,然后在屏幕底部显示":".我想这是一个延续提示,因为我按下ENTER并获得另一个数据屏幕.在这种情况发生后,我通常无法恢复正常提示.我得到了(END)shell底部的文本,看起来它正在屏蔽我尝试输入的任何命令的前几个字符,它甚至看起来有点零星.我似乎无法弄明白.有任何想法吗?

windows git powershell

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

按等价关系列出的组列表

我在集合上有等价关系 .如何构建等价类?它就是这样,但在所有元素之间,不仅仅是邻居.RAAgroupBy

例如,equal是等价关系(它是自反,对称和传递二元关系):

type Sometuple = (Int, Int, Int)

equal :: Sometuple -> Sometuple -> Bool
equal (_, x, _) (_, y, _) = x == y
Run Code Online (Sandbox Code Playgroud)

它实际上是连接2个Sometuple元素的谓词.

?> equal (1,2,3) (1,2,2)
True
Run Code Online (Sandbox Code Playgroud)

那么,我如何[Sometuple]基于equal谓词构建所有等价类?像这样的东西:

equivalenceClasses :: (Sometuple -> Sometuple -> Bool) -> [Sometuple] -> [[Sometuple]]
?> equivalenceClasses equal [(1,2,3), (2,1,4), (0,3,2), (9,2,1), (5,3,1), (1,3,1)]
[[(1,2,3),(9,2,1)],[(2,1,4)],[(0,3,2),(5,3,1),(1,3,2)]]
Run Code Online (Sandbox Code Playgroud)

haskell list

14
推荐指数
1
解决办法
1840
查看次数

如何将我的远程git仓库移动到另一个远程git仓库?

我想将我的远程git存储库及其所有分支移动到新的远程存储库.

老遥远= git@github.com:thunderrabbit/thunderrabbit.github.com.git

新遥控= git@newhub.example.net:tr/tr.newrepo.git

git git-remote

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

通过管道从子shell获取退出代码

如何wget从子shell进程获取退出代码?

所以,主要问题是$?等于0.哪里可以$?=8建立?

$> OUT=$( wget -q "http://budueba.com/net" | tee -a "file.txt" ); echo "$?"
0
Run Code Online (Sandbox Code Playgroud)

tee实际上它没有用.

$> OUT=$( wget -q "http://budueba.com/net" ); echo "$?"
8
Run Code Online (Sandbox Code Playgroud)

但是${PIPESTATUS}数组(我不确定它与那种情况有关)也不包含该值.

$> OUT=$( wget -q "http://budueba.com/net" | tee -a "file.txt" ); echo "${PIPESTATUS[1]}"    

$> OUT=$( wget -q "http://budueba.com/net" | tee -a "file.txt" ); echo "${PIPESTATUS[0]}"
0

$> OUT=$( wget -q "http://budueba.com/net" | tee -a "file.txt" ); echo "${PIPESTATUS[-1]}"
0
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是 - 如何wget通过tee子shell …

bash pipe exit-code tee subshell

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

没有壁球的git-subtree:查看日志

我使用git子树添加而不使用squash选项将树合并到我的存储库中.git日志显示提交已成功添加到存储库.但是,如果我这样做git log --follow filename,则历史记录在合并时停止,并且不会显示先前的提交.我尝试使用-M而不是,--follow这也不起作用.如何在合并之前获取特定文件或文件的提交日志?

git git-subtree

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