# Issues with using Mercurial instead of Git

**URL:** <https://discourse.julialang.org/t/issues-with-using-mercurial-instead-of-git/7925>\
**Category:** Offtopic\
**Created:** [December 19, 2017, 10:08am UTC](https://discourse.julialang.org/t/issues-with-using-mercurial-instead-of-git/7925 "2017-12-19T10:08:30Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![Liso](https://avatars.discourse-cdn.com/v4/letter/l/898d66/32.png) [@Liso](https://discourse.julialang.org/u/Liso)\
**Post date:** [December 19, 2017, 10:08am UTC](https://discourse.julialang.org/t/issues-with-using-mercurial-instead-of-git/7925/1 "2017-12-19T10:08:30Z")

</div>

> [@And now... Julia 0.6.2!](https://discourse.julialang.org/t/and-now-julia-0-6-2/7822/21):
>
> > [@And now... Julia 0.6.2!](https://discourse.julialang.org/t/and-now-julia-0-6-2/7822/11):
> >
> > I wonder if, in the future, we could get a root directory name in the tarball that reflects the version instead of the git hash
> 
> Indeed, that’s planned. I’d like to use the full `VERSION` rather than just the Git SHA for all downloads, so for example recent 0.7 would be `julia-v0.7.0-DEV.3089`, this would be `julia-v0.6.2`, etc.

I was first trying to clone Julia repository into Mercurial (do you know something so good as TortoiseHg for git?). Everything worked fine till I realized that some conditional code depends on GIT\_VERSION\_INFO.build\_number which was set to 0 because it wasn’t really git repository.

Is it really good thing this dependency on git?

---

<div class="post-metadata">

**Author:** ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)\
**Post date:** [December 19, 2017, 11:14am UTC](https://discourse.julialang.org/t/issues-with-using-mercurial-instead-of-git/7925/2 "2017-12-19T11:14:02Z")

</div>

> [@And now... Julia 0.6.2!](https://discourse.julialang.org/t/and-now-julia-0-6-2/7822/25):
>
> do you know something so good as TortoiseHg for git?

Have a look at TortoiseGit 🙂

---

<div class="post-metadata">

**Author:** ![Liso](https://avatars.discourse-cdn.com/v4/letter/l/898d66/32.png) [@Liso](https://discourse.julialang.org/u/Liso)\
**Post date:** [December 19, 2017, 12:48pm UTC](https://discourse.julialang.org/t/issues-with-using-mercurial-instead-of-git/7925/3 "2017-12-19T12:48:42Z")

</div>

> [@And now... Julia 0.6.2!](https://discourse.julialang.org/t/and-now-julia-0-6-2/7822/26):
>
> Have a look at Tortoise 🙂

Still windows only, isn’t it?

---

<div class="post-metadata">

**Author:** ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)\
**Post date:** [December 19, 2017, 12:58pm UTC](https://discourse.julialang.org/t/issues-with-using-mercurial-instead-of-git/7925/4 "2017-12-19T12:58:50Z")

</div>

Indeed. I like GitKraken on Linux, especially since you can use it without an account with some ini hackery 😛

---

<div class="post-metadata">

**Author:** ![Liso](https://avatars.discourse-cdn.com/v4/letter/l/898d66/32.png) [@Liso](https://discourse.julialang.org/u/Liso)\
**Post date:** [December 19, 2017, 2:11pm UTC](https://discourse.julialang.org/t/issues-with-using-mercurial-instead-of-git/7925/5 "2017-12-19T14:11:24Z")

</div>

> [@And now... Julia 0.6.2!](https://discourse.julialang.org/t/and-now-julia-0-6-2/7822/28):
>
> GitKraken

Oh. It seemed good but it is not working without registering to some kind of “social network” 😕

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [December 19, 2017, 2:19pm UTC](https://discourse.julialang.org/t/issues-with-using-mercurial-instead-of-git/7925/6 "2017-12-19T14:19:11Z")

</div>

> [@And now... Julia 0.6.2!](https://discourse.julialang.org/t/and-now-julia-0-6-2/7822/25):
>
> Is it really good thing this dependency on git?

If you want to use any form of version control, that particular framework will be a “dependency”. So I am not sure I understand the question.

In any case, for released versions you don’t need to deal with `git` if you don’t want to, just extract from a tarball.

---

<div class="post-metadata">

**Author:** ![Liso](https://avatars.discourse-cdn.com/v4/letter/l/898d66/32.png) [@Liso](https://discourse.julialang.org/u/Liso)\
**Post date:** [December 19, 2017, 3:02pm UTC](https://discourse.julialang.org/t/issues-with-using-mercurial-instead-of-git/7925/7 "2017-12-19T15:02:50Z")

</div>

I don’t complain dependency on git (although I don’t like git).

I was just talking about [this](https://github.com/JuliaLang/julia/blob/88cdf44996593f35672984bbd48c867ae8d950a2/base/version.jl) (I am not sure how long could this link work because git could rebase it 😛 ) where in prerelease there is version string enhanced by build\_number which is generated by [this](https://github.com/JuliaLang/julia/blob/88cdf44996593f35672984bbd48c867ae8d950a2/base/version_git.sh#L46) or [this](https://github.com/JuliaLang/julia/blob/88cdf44996593f35672984bbd48c867ae8d950a2/base/version_git.sh#L76). And in latter case some functionality (sorry I don’t remember which) was silently switched off. I suppose I could not update some packages…

Maybe better to fire error if build\_number in prerelease version is -1 ?

Build number could be literally presented in some file and could be changed manually or automatically by some commit hooks. Then you could make appropriate version without `.git` directory… (which you don’t have if you use hggit)

BTW what will `git rev-list --count HEAD "^$verchanged"` return in case some heads are rebased?

---

<div class="post-metadata">

**Author:** ![RoyiAvital](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/royiavital/32/571_2.png) [@RoyiAvital](https://discourse.julialang.org/u/RoyiAvital)\
**Post date:** [December 22, 2017, 1:01pm UTC](https://discourse.julialang.org/t/issues-with-using-mercurial-instead-of-git/7925/8 "2017-12-22T13:01:13Z")

</div>

I like [SmartGit](http://www.syntevo.com/smartgit/).  
It works cross platform and is a great GIT tool.

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [December 22, 2017, 2:01pm UTC](https://discourse.julialang.org/t/issues-with-using-mercurial-instead-of-git/7925/9 "2017-12-22T14:01:16Z")

</div>

> [@And now... Julia 0.6.2!](https://discourse.julialang.org/t/and-now-julia-0-6-2/7822/29):
>
> Oh. It seemed good but it is not working without registering to some kind of “social network” 😕

What? No it doesn’t.

---

<div class="post-metadata">

**Author:** ![ExpandingMan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/expandingman/32/866_2.png) [@ExpandingMan](https://discourse.julialang.org/u/ExpandingMan)\
**Post date:** [December 22, 2017, 3:04pm UTC](https://discourse.julialang.org/t/issues-with-using-mercurial-instead-of-git/7925/10 "2017-12-22T15:04:21Z")

</div>

No bash command line tool has ever once asked me to register with a social network of any kind. That’s why I love them. 😆

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [December 22, 2017, 3:43pm UTC](https://discourse.julialang.org/t/issues-with-using-mercurial-instead-of-git/7925/11 "2017-12-22T15:43:39Z")

</div>

> [@And now... Julia 0.6.2!](https://discourse.julialang.org/t/and-now-julia-0-6-2/7822/34):
>
> No bash command line tool has ever once asked me to register with a social network of any kind. That’s why I love them. 😆

But neither does GitKraken, so…

---

<div class="post-metadata">

**Author:** ![Liso](https://avatars.discourse-cdn.com/v4/letter/l/898d66/32.png) [@Liso](https://discourse.julialang.org/u/Liso)\
**Post date:** [December 22, 2017, 3:48pm UTC](https://discourse.julialang.org/t/issues-with-using-mercurial-instead-of-git/7925/12 "2017-12-22T15:48:56Z")

</div>

It is working for you without registering account with working mail address?

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [December 22, 2017, 3:54pm UTC](https://discourse.julialang.org/t/issues-with-using-mercurial-instead-of-git/7925/13 "2017-12-22T15:54:26Z")

</div>

I just use my Github account. The other option is to have a sign-in with a GitKraken account. Neither of which are social networks. So yes, it requires that you sign in in some way, but even command line git requires authentication… which is really what GitKraken is doing here.

If you really don’t want an account, just there’s ways around it.

> <https://stackoverflow.com/questions/39272468/how-can-i-use-gitkraken-on-a-private-network>

---

<div class="post-metadata">

**Author:** ![Liso](https://avatars.discourse-cdn.com/v4/letter/l/898d66/32.png) [@Liso](https://discourse.julialang.org/u/Liso)\
**Post date:** [December 22, 2017, 6:21pm UTC](https://discourse.julialang.org/t/issues-with-using-mercurial-instead-of-git/7925/14 "2017-12-22T18:21:42Z")

</div>

Thanks much I could evaluate it now (seems nice for first try). 🙂

But I don’t think I could use it regularly by hacking it in this way.
