让TorhoiseHg记住密码

在使用TortoiseHg的过程中,无论是pull还是push,每次都要输入用户名和密码,是不是很麻烦呢?没关系,把用户名和密码保存在配置文件中,就方便多了。


加密方式 (最有效的方式)

以上方法提供的方式都是将密码以非加密方式保存,安全性比较低,还好,自从TortoiseHg 0.10,就提供了一个mercurial-keyring扩展,可以将密码以加密方式保存在一个密码数据库中。

而我们要做的唯一一步操作,就是启用这个扩展。方法如下,只要在配置文件中(如果想让这个扩展只对某一个代码库生效,就修改相应目录下.hg的hgrc文件,若要使扩展对所有代码库都生效就找到mercurial.ini文件)加入以下字符串:

[extensions]
mercurial_keyring=
当然也可以在TortoiseHg >仓库设置/全局设置> 扩展中,选择mercurial_keyring来实现。

因为是启用扩展,因此TortoiseHg软件需要重启,还好这一切都是他自己自动完成的。

通过以上操作,然后按照第一种方法中介绍的去配置hgrc文件,记住,不需要再在文件中指定密码,但是必须有用户名信息(在auth或者path中设置用户名均可)。这样,在第一次同步时,要求输入密码,以后就不再需要输入了,这个密码会将以加密方式进行保存,这大大提高密码安全性。另外,如果密码更改了,这个扩展还会弹出输入密码的框从而更新密码信息,而上面的配置修改方式,如果设置的密码错误,则只会报错不会要求更新。

 




版本服务器信息如下:
项目名称: test
项目版本服务器地址: https://222.197.181.19/repos/test
用户名: xhome_username
密码: xhome_password

在配置文件中加入如下配置:
[auth]
test.prefix=https://222.197.181.19/repos/test
test.username=xhome_username
test.password=xhome_password

注意:[auth]只能出现一次,如果需要在全局配置中加入多个项目的配置,继续在[auth]下面添加即可

如果想应用与全局,则将上诉配置加入 mercurial.ini文件中(在用户主目录下);如果只是应用于某个文件夹,则在改目录下的 .hg\hgrc文件中加入上诉配置即可

当然,也可以在workbench中进入设置,编辑相应的配置文件


TortoiseHg是一个跨平台的Mercurial分布式版本控制系统的可视化客户端工具,如果使用https协议与服务器进行代码同步时是要求输入密码的,这比较烦人。这里根据用户对密码保存安全性的不同要求,总结了几种方法,以便在同步时不需要输入密码信息。以下均以TortoiseHg 2.0中文版为例。

1.非加密方式

非加密方式就是将同步密码直接置于配置文件中,这种方式设置快速,但是不利于密码的安全,有如下几种设置方式:

(1)第一次克隆时设置

当需要在一个文件夹中第一次克隆服务器的代码时,在如下界面中的“源”地址中,包含用户名和密码即可:

截图01

其中username和password分别替换成实际的用户名和密码即可。

(2)在配置文件中设置

实际上上面的方法设置后,这些字符串保存在了配置文件中,如果第一次没有如上的输入密码信息,也可以通过之后修改配置文件来达到目的。这个配置文件在目标文件夹中.hg文件夹中叫做hgrc的文件(类似于asp.net中web.config,每个克隆的代码库,都有一个hgrc文件,它的设置只对于当前代码库有效),用文本打开即可显示配置信息(可以通过在文件夹中右键-TortoiseHg-仓库设置,然后选择右上角的“编辑文件”按钮打开):

截图01

上面paths分支下的default就是我们上面(1)中设置的“源”,如果之前没有设置,随时都可以在这里加入用户名和密码信息。

另外,如果TortoiseHg基于的Mercurial版本是1.3及其以上(TortoiseHg 2.0基于Mercurial 1.8,因此可以),上面的配置文件也可以如下方式配置:

截图02

也就是将同步的用户名和密码信息放在auth节中。要注意,auth中三行一个也不能少,第一行是同步的url前缀信息,第二行用户名,第三行密码,其中的xxx,可是是任意合法的字符串,只要保证三行的xxx一样即可。虽然auth和paths中的prefix和default看似有些重复,但是一个也不能少。

可以这样翻译auth段:在当前代码库中,所有以http://bitbucket.org开头的url(记为xxx)同步时,都是用username作为用户名,password作为密码。

注意:虽然是明文在配置文件中保存了密码,但是在workbench中这些密码将会是星号方式显示,但有一个例外,也是一个bug,即如果密码中包含@字符,那么密码中从这个字符@开始一直到结束,都将不幸的显示在workbench中,不仅暴露部分密码,而且会导致同步的url被解析错误而无法同步。

截图00

如图可以看出,如果密码是pass@word,那么'@word’将被会明文显示出来,而@前面的pass还是正常的星号显示,这主要是因为密码中的@被解析为'用户名:密码@url’中的那个@了,也就是对整个url进行了不正确的分割。因此如果密码是这种情况,这样设置密码的方式就无效了。

(3)全局设置

上面已经看到,对每一个代码库,如果都将用户和密码信息放在hgrc中,那么密码将分布在很多地方,安全性是最低的。还好,TortoiseHg提供了一个全局设置,类似于asp.net的machine.config文件,对于所有代码库,都生效,这个文件在windows系统中,一般是mercurial.ini文件(可以通过在文件夹中右键-TortoiseHg-全局设置,然后选择右上角的“编辑文件”按钮打开)

Hg全局配置文件位置

  • 在XP 中一般是:C:\Documents and Settings\Administrator\mercurial.ini

  • 在Windows 其它版本中,一般自动生成在你的用户文档目录中:C:\Documents and Settings\{用户名}\mercurial.ini

可以用如下类似方式配置:

截图01

翻译过来的意思就是说:以后凡是本机中代码库中url以https://bitbucket.org/foo/开头的,都用foo和foo_passwd分别作为用户名和密码,凡是以https://bitbucket.org/bar/开头的,都用bar和bar_passwd作为用户名和密码。

通过这种方式,将所有密码信息都保存在一个文件中了,减少了密码配置的工作量。配置的详细信息还可以参考《Configuring User Auth for HTTPS》。

备注1:以上所涉及的配置文件,都不会随着同步操作被传送出去,因此里面的配置信息(尤其是密码)相对外界是是安全的,上述所指的不安全,是基于本地计算机而言。

备注2:TortoiseHg是Mercurial的一个优秀的gui客户端,以上介绍均基于TortoiseHg的,有些可以手动修改配置文件,而有些直接就可以在gui界面中实现。如果直接使用Mercurial,可能配置过程不同,会在命令模式下,并且一些扩展是需要手动安装然后启用的,可以查询相关资料进行配置。

备注3:实际上,Mercurial 完全支持SSH 来进行同步,而不需要提供密码,这大大提高了安全性,不过还是需要一些其他配置,不在本文介绍范围,可以参考《Using SSH to Access your Bitbucket Repository


深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值