Hi I have a problem with mercurial.
I have a web project in visual studio. And i'm using NuGet. Whenever I update/install new package with NuGet it did something so my web.config file become untracked in mercurial.
So if I run hg status it shows ? web.config
How can I tell mercurial that web.config was just changed? So i can just push changes.
If call hg add web.config and push changes it corrupt my repository.
If call hg add web.config and push changes it corrupt my repository.
You may have a deeper issue going on. You need to verify the existing repository soon. Do the following:
hg verify --verbose
and report back what it says.
Related
Usually I create my websites (PHP, HTML, CSS) local on my mac. I've MAMP and Mercurial (Hg) installed.
When I start a new project I draw up a new project directory in "htdocs" and begin with hg init. New files were added by hg add to the project or excluded in .hgignore. All changes in this project are completed with an hg commit.
Additional to the local project I push my whole project into a private repository to Bitbucket (hg push https://bitbucket.org/MyUser/MyProjectRepository). That works perfectly.
The problem begins when a second person works at the project at the same time. He clones with hg clone https://bitbucket.org/MyUser/MyProjectRepository my private Bitbucket repository.
When I change and commit a css file local on my mac, push it afterwords to Bitbucket and the second person changes something on his local css file at the same time he gets a merge problem when he he tries to push his changes to Bitbucket.
Does anyone know what the problem is?
The second person needs to pull and merge your changes from the bitbucket repository before pushing his changes back.
Take a look at HGInit here for a great introduction to using Mercurial with a team.
So I have managed to corrupt my mercurial repo. So I am following the steps from the repository corruption page on the wiki to repair it.
When I run the convert command:
hg convert --config convert.hg.ignoreerrors=True REPO REPOFIX
It gives me the following output:
initializing destination REPOFIX repository
REPO does not look like a CVS checkout
REPO does not look like a Git repository
REPO does not look like a Subversion repository
REPO is not a local Mercurial repository
REPO does not look like a darcs repository
REPO does not look like a monotone repository
REPO does not look like a GNU Arch repository
REPO does not look like a Bazaar repository
cannot find required "p4" tool
Why on earth would it say that? And how can I go about fixing it?
It definitely is a mercurial repository, it's hosted on Bitbucket, and I am using Tortoisehg to manage it.
Edit:
I think maybe I can't do this against a remote repository? How can I go about fixing this then?
You probably did not corrupt the remote repository at Bitbucket, did you?
It's more likely you corrupted your local copy, and so you can just clone it from Bitbucket again or try the hg convert … trick on your local copy (i.e. the folder you manage with TortoiseHG).
A bit late but I faced the same issue. The mistake was running that command inside the project folder. You have to run the command outside the folder containing the .hg file. I could not find a way through TortoiseHg console to move up a directory so I used windows terminal.
I am a new guy in using Mercurial to maintain my code editions. My company's server is using SVN and I want to maintain my local repository, so I am commit into my Hg when I have a little change to my code. After testing my code carefully, then I can push back my code into SVN server.
I install TortoiseHg and I can clone other open source project to my computer. And I have HgSubversion plugin installed correctly.
Right now I can do the clone operation using following commands:
$ hg clone svn+https://XXXX:8443 test
But after the clone is finished, there is just a folder .hg under test folder.
Why this happen? How can I fix it?
Thanks
Water Lin
It might has some files which stored with non-ascii file name in repository. Mercurial can't treats non-ascii file name correctly so far. Have you tried to check out the log? You can do it with command "hg log" to make sure all files had been imported in to Mercurial. Then download and install the extention fixutf8. That can fix the problem. After you install fixutf8 you can update current working folder to tip reversion again.
I have a project where I'm using Bitbucket as my HG server, but I've recently discovered that as a lone developer I can use Fogbugz/Kiln for free. I want to move my files into Kiln but I don't want to lose my history. I'm sure there's a dead-stupid easy way to do it, but I just don't know. How do I do this?
Thanks!
Create the new project repo and do the following with your current copy of the original repo: hg push new-repo-path.
Then you use the new path in the future. You can delete the bitbucket repo.
With Mercurial, all history is in every copy of the repository, including your local copies.
Since you are already using Mercurial. I was just curious, shouldn't cloning your repository on Fogbugz/Kiln be sufficient.
hg clone "BitBucket Repo ..."
Of course, this won't copy your per-repository hgrc file. You will need to do that separately.
Another approach is to use bundle.
hg bundle --all bitbucket.bundle
hg clone bitbucket.bundle my_repo
Third approach is to push or pull from bitbucket repo to fogbugz repo.
Setting defaults
See: https://www.mercurial-scm.org/wiki/TipsAndTricks.
Reproducing it here:
It is possible to store a default push URL that will be used when you type just 'hg push'. Edit hgrc and add something like:
[paths]
default-push = ssh://hg#example.com/path
The other answers have already explained that right after creating a new empty repository, you can push your changes into it with hg push http://example.com/hg/newrepo. (Note that once you have pushed some changes into it, it will only accept changes from related repositories in the future.)
What you also seem to be wondering about also is how to then configure your local repository to push to that location by default, without needing to specify the URL every time. You can do that by editing the default location in the .hg\hgrc file of your repository. It is a text file that you can open with notepad or any other text editor.
I have started a Mercurial based project on google code.
I have worked in subversion for sometime, but I am confused with what to do what in Hg.
I would like help on the following:
How do I initialize project (first on my local machine) (then from my local copy to google's server)
How do I get my copy of a build from the server
How do I update(merge/sync) my local changes back to the server
My project is in PHP and I am using netbeans
Both barkmadley and RC touch on it, but what you're explicitly missing is that your order is wrong in step one. Create the empty repo on google, clone it to local, and then commit locally and push. Don't try to create it locally and then push to google. There's nothing inherently wrong with the idea of doing it that way, but it's not the workflow for which google is set up.
For what it's worth, I wrote a blog post about Managing a Google Code project with Mercurial
Here's some infos:
For #1: initialize the project on google-code, then clone the repository locally (hg clone ...), add you files to the directory created by the clone process and commit that (hg commit -m 'your message' then push (hg push).
For #2: see #1
For #3: to update you local copy (hg pull -u) and to commit your change hg commit followed by hg push
As mentioned by barkmadley, Hg Book is worth reading
Hg Book should help.
when you create a project you can select the version control system used.
from there you should be able to get hg clone instructions from google code on the downloads tab.
this will give you an initial checkout of the system. Then you copy your work into it, and hg push and hg pull to sync between the google repository. To save changesets to your local copy use hg commit
Try reading this user contributed wiki. It is quite straigtforward I reckon.