开发者

Mercurial -- specify that certain files should always be pulled but never pushed?

There are certain files in my repository that I want to be able to edit locally. But I never want to push any changes to those files to the server. Is it possible for me to set that up?

EDIT: to clarify, I do want to pull changes that others have made. But I don't want to push my changes.开发者_JAVA百科


It's not easily possible. Mercurial doesn't push and pull files it pushes and pulls changesets. Your only route would be to never commit those files. Ignoring them isn't an option because they're already tracked (added) and tracked always overrides ignored.

You could explicitly exclude them on commits like.

hg commit -X a-file-I-changed -X another-file 

And since you'll eventually forget to do that you could set up an alias in your hgrc:

[alias]
mycommit = -X a-file-I-changed -X another-file 

However, I'm going to go out on a limb and guess you're talking about a configuration file like a database settings file. The best way to handle that is to commit not database.conf (or whatever it's called) but instead database.conf.sample and then have your launch script copy database.conf.sample to database.conf if it doesn't already exist. That's the normal practice.


If your change is substantial consider making it a patch in a Mercurial Queue. You can pop your change, pull their changes, and then push your change back on to the working dir. If it's a change you couldn't bear to lose you can make make the queue a repository of its own, and then clone that repository elsewhere.


A Ry4an writes, you can exclude the file when you commit. A colleague of mine has made a simple extension that will automate this in simple cases:

https://www.mercurial-scm.org/wiki/ExcludeExtension

https://bitbucket.org/aragost/exclude/

The non-simple case is a merge -- Mercurial wont let you exclude files when you commit a merge. For now, you'll have to move the modified file aside, revert it, and then move it back after the merge. Patches are welcome to handle this case!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜