小编eve*_*tic的帖子

如何更改.gitattributes生效

我正在开发一个我们最近开始使用git的项目.设置从一开始就不完美,所以我在人们开始克隆/工作后设置了.gitattributes,我仍在对这个文件进行一些更改.

考虑以下设置......

Alice和Bob都克隆了"repo.git",并且存储库包含文件/myproj/src/file.ending,其中包含\n行结尾,即文件不包含\r字符.

它们都具有.gitattributes以下设置:

/myproj/src/file.ending -text
Run Code Online (Sandbox Code Playgroud)

这告诉git不file.ending应该被视为文本文件,因此不应该进行行结束转换.

因此,Alice和Bob的工作树中的文件也有\n行结尾.

现在,Alice对.gitattributes进行了以下更改:

/myproj/src/file.ending text
Run Code Online (Sandbox Code Playgroud)

爱丽丝希望这一改变能够为她和鲍勃生效.

我现在知道的唯一方法是非常侵入性的:

git rm --cached -r .
git reset --hard
Run Code Online (Sandbox Code Playgroud)

我想避免两件事:

  • Alice在实际测试之前必须提交她的`.gitattributes`文件(上面的重置将覆盖她的更改).
  • Bob必须擦除他的索引和工作树才能获得更新.鲍勃不高兴.

这样做的首选方式是什么?

git attributes line-endings

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

为什么 .gitattributes 不会覆盖 Linux 上的 core.autocrlf 配置?

在为项目设置 Git 时,我注意到行尾规范化在 Linux 和 Windows 上的工作方式略有不同。

据我了解有关此主题的 Git 文档,Windows 上的行为是正确的。具体来说,当.gitattributes文件存在时,它应该覆盖core.autocrlf设置。

下表显示了我所做的一些实验的结果。最左边的两列显示.gitattributes文件和core.autocrlf设置。其他列显示以下git命令的结果:

  1. git rm --cached <file> (强制下一次结帐以执行行规范化处理)。
  2. git checkout HEAD -- <file> (签出文件,应用行结束规范化)
  3. git ls-files --eol <file> (检查工作树中的行尾)
+----------------+---------------+-------------+-- ------------+--------------+-------------- ----+----------------------------+
| .git 属性 | core.autocrlf | Linux 2.7.2 | Linux 2.11.0 | Linux 2.16.2 | Windows 2.12.2.windows.2 | Windows 2.16.1.windows.1 |
| | | | | | | |
+----------------+---------------+-------------+-- ------------+--------------+-------------- ----+----------------------------+
| 无 | 真实| 带crlf | 带crlf …

git line-endings eol carriage-return linefeed

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

使用进程内Java RMI注册表时如何很好地关闭

案件

我在服务器进程中使用进程内* Java RMI 注册表。

我在注册表中绑定了 1 个对象。

我的客户端进程连接并查找绑定和传递的远程对象。

现在我希望服务器进程完全关闭,即不应存在更多守护线程。使用 RMI,我在服务器进程中的一个对象上调用“close”,问题是这个“close”方法实际上必须做什么。

问题

如何确保使用 RMI 导出对象的进程中没有运行非守护线程?

据我所知,我必须取消导出**所有导出的对象才能关闭 JVM?由于许多对象已通过 RMI 传递,因此我必须维护这组对象并取消导出**每个对象。

我读过任何导出的对象在垃圾收集时都应该取消导出自身(现在找不到引用),但我的经验告诉我,某些对象(尤其是分布的?)可能需要很长时间才能被垃圾收集,所以这是不是一个真正的选择。

* 使用LocateRegistry创建 ** Unexport 使用UnicastRemoteObject
执行

java client distributed rmi server

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