msysgit:不设置隐藏标志的选项

发布于 2024-09-30 20:02:37 字数 121 浏览 8 评论 0原文

我正在使用 msysgit,对于以斜杠开头的文件,例如 .classpath,它会自动设置 hidden 标志,这使得 IDE 无法覆盖它。如何防止设置这个隐藏标志?

I'm using msysgit and for files starting with a slash, e.g. .classpath it automatically sets the hidden flag which makes it impossible for IDEs to overwrite it. How to prevent setting this hidden flag?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

孤凫 2024-10-07 20:02:37

添加 --global 使其成为所有新存储库的默认行为:

git config --global core.hidedotfiles "false"

Add --global to make this the default behaviour for all new repos:

git config --global core.hidedotfiles "false"
豆芽 2024-10-07 20:02:37
git config core.hidedotfiles "false"
git config core.hidedotfiles "false"
最冷一天 2024-10-07 20:02:37

在创建新存储库之前,请确保在设置 core.hidedotfiles 时使用 Git 2.22(2019 年第 2 季度)。

之前,“git init”忘记读取特定于平台的存储库配置,这使得 Windows 端口忽略 core.hidedotfiles 的设置。

请参阅 提交 2878533(2019 年 3 月 11 日),作者:Johannes Schindelin (dscho)
(由 Junio C Hamano -- gitster -- 合并于 提交 6364386,2019 年 4 月 16 日)

mingw:再次尊重git init中的core.hidedotfiles = false

这是一个棕色纸袋。
在添加测试时,我们实际上根本无法验证 git init 中是否注意到了配置变量。
当读取配置后更改将 .git/ 目录标记为隐藏的原始补丁时,该开发人员忘记了新代码将在读取配置之前使用 hide_dotfiles 变量。

修复方法很明显:在之前读取(有限,预初始化)配置
创建 .git/ 目录。

请注意,我们无法从 create_default_files() 中删除外观相同的 git_config() 调用:我们创建 .git/ 目录在这些调用之间。
如果我们删除它,并且父目录位于 Git 工作树中,并且该工作树的 .git/config 包含任何 init.templatedir 设置,那么我们都会突然拿起它。

这修复了git-for-windows#789


这更加强大Git 2.32(2021 年第 2 季度),修复了一些漏洞。

请参阅提交 68ffe09提交 64cc539, 提交0171dbc(2021 年 3 月 21 日),以及提交 04fe4d7提交e4de450提交 aa1b639, 提交 0c45427, 提交 e901de6, 提交 f63b888(2021 年 3 月 14 日),作者: Andrzej狩猎 (ahunt)
(由 Junio C Hamano -- gitster -- 合并于 提交 642a400,2021 年 4 月 7 日)

init:删除git_init_db_config( ) 同时修复泄漏

签字人:Andrzej Hunt

此更改的主要目标是停止泄漏 init_db_template_dir
发生这种泄漏的原因是:

  1. git_init_db_config() 将新内存分配到 init_db_template_dir 中,而不首先释放现有值。
  2. init_db_template_dir 可能已经包含数据,因为: 2.1 git_config() 可以在单个进程中使用此回调调用两次 - 可能至少有 2 次分配。< br>
    2.2 单个 git_config() 分配可以多次调用给定键的回调(请参阅函数文档中的进一步说明) - 每次调用都会触发另一次泄漏。

最简单的泄漏修复方法是在覆盖之前free(init_db_template_dir)
相反,我们选择转换为通过 git_config_get_value() 获取 init.templatedir,因为这样更明确、更高效,并且避免了分配(返回的结果归配置缓存所有,因此我们不承担任何责任)用于释放它)。

如果我们删除 init_db_template_dir, git_init_db_config() 最终只负责将 core.* 配置值转发到 platform_core_config( )
然而,platform_core_config()已经忽略了non-core.*配置值,因此我们可以安全地删除git_init_db_config()并调用git_config( ) 直接使用 platform_core_config() 作为回调。

platform_core_config 转发最初添加于:

  • 2878533mingw:尊重core.hidedotfiles = false 再次在 git-init 中,2019-03-11,Git v2.22.0-rc0 -- 合并列在第5批中)
  • 而且我怀疑自 git_init_db_config 最初实现以来就存在泄漏的可能性:90b4518 ("添加 init.templatedir 配置变量。", 2010-02-17, Git v1.7.1-rc0 -- 合并)


Make sure to use Git 2.22 (Q2 2019) when setting the core.hidedotfiles, before creating new repositories.

Before, "git init" forgot to read platform-specific repository configuration, which made Windows port to ignore settings of core.hidedotfiles, for example.

See commit 2878533 (11 Mar 2019) by Johannes Schindelin (dscho).
(Merged by Junio C Hamano -- gitster -- in commit 6364386, 16 Apr 2019)

mingw: respect core.hidedotfiles = false in git init again

This is a brown paper bag.
When adding the tests, we actually failed to verify that the config variable is heeded in git init at all.
And when changing the original patch that marked the .git/ directory as hidden after reading the config, it was lost on this developer that the new code would use the hide_dotfiles variable before the config was read.

The fix is obvious: read the (limited, pre-init) config before
creating the .git/ directory.

Please note that we cannot remove the identical-looking git_config() call from create_default_files(): we create the .git/ directory between those calls.
If we removed it, and if the parent directory is in a Git worktree, and if that worktree's .git/config contained any init.templatedir setting, we would all of a sudden pick that up.

This fixes git-for-windows#789


This is more robust with Git 2.32 (Q2 2021), where some leaks are plugged.

See commit 68ffe09, commit 64cc539, commit 0171dbc (21 Mar 2021), and commit 04fe4d7, commit e4de450, commit aa1b639, commit 0c45427, commit e901de6, commit f63b888 (14 Mar 2021) by Andrzej Hunt (ahunt).
(Merged by Junio C Hamano -- gitster -- in commit 642a400, 07 Apr 2021)

init: remove git_init_db_config() while fixing leaks

Signed-off-by: Andrzej Hunt

The primary goal of this change is to stop leaking init_db_template_dir.
This leak can happen because:

  1. git_init_db_config() allocates new memory into init_db_template_dir without first freeing the existing value.
  2. init_db_template_dir might already contain data, either because: 2.1 git_config() can be invoked twice with this callback in a single process - at least 2 allocations are likely.
    2.2 A single git_config() allocation can invoke the callback multiple times for a given key (see further explanation in the function docs) - each of those calls will trigger another leak.

The simplest fix for the leak would be to free(init_db_template_dir) before overwriting it.
Instead we choose to convert to fetching init.templatedir via git_config_get_value() as that is more explicit, more efficient, and avoids allocations (the returned result is owned by the config cache, so we aren't responsible for freeing it).

If we remove init_db_template_dir, git_init_db_config() ends up being responsible only for forwarding core.* config values to platform_core_config().
However platform_core_config() already ignores non-core.* config values, so we can safely remove git_init_db_config() and invoke git_config() directly with platform_core_config() as the callback.

The platform_core_config forwarding was originally added in:

  • 2878533 (mingw: respect core.hidedotfiles = false in git-init again, 2019-03-11, Git v2.22.0-rc0 -- merge listed in batch #5)
  • And I suspect the potential for a leak existed since the original implementation of git_init_db_config in: 90b4518 ("Add init.templatedir configuration variable.", 2010-02-17, Git v1.7.1-rc0 -- merge)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文