<div dir="ltr">I've been using Seth Falcon's <a href="https://github.com/seth/rebar_lock_deps_plugin.git">rebar_lock_deps_plugin</a> for a while now to track all my commits by revision ID just for this purpose. It was the only way to keep my sanity when building releases on different environments. Otherwise I would have been forced to manually check each dependency before building a release (I did this for a while and I don't recommend it).<br><br>rebar (< 3.x) will fail when updating transitive dependencies if there are even trivial differences when specifying the repository's URL or version (e.g. <span style="font-family:monospace,monospace">git://</span> and <span style="font-family:monospace,monospace">https://</span> as URL protocols used to reference the same repository in two different packages).<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Mar 18, 2015 at 3:20 PM, Loïc Hoguin <span dir="ltr"><<a href="mailto:essen@ninenines.eu" target="_blank">essen@ninenines.eu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On 03/18/2015 06:51 PM, Joe Armstrong wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I've run into another problem -<br>
Right now I have a working program that I want to make sure works on<br>
other peoples machines. So they need to get exactly the version I have<br>
<br>
Right now I clone cowboy cowlib and ranch<br>
<br>
    I then checkout   master from cowboy<br>
                                tag 1.2.0 from cowlib<br>
                                tag 1.0.0 from ranch<br>
<br>
Everything works fine - great<br>
<br>
If I publish this I assume the tagged versions 1.2.0 1.0.0 or cowlib and ranch<br>
will be the same - but in the future master won't be the same<br>
<br>
I then did a (inside cowboy)<br>
<br>
   > git checkout master<br>
<br>
and then<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
git describe<br>
</blockquote>
<br>
fatal: No annotated tags can describe<br>
'<u></u>90ae31998e8d0887b9efe4b441136a<u></u>c047708bb9'.<br>
<br>
 From which I assume that I can use 90ae... etc as an immutable reference to<br>
cowboy, and the 1.2.0 1.0.0 tags for cowlib and ranch<br>
<br>
So now what I have to do is<br>
<br>
clone cowboy and checkout 90ae31998e8d0887b9efe4b441136a<u></u>c047708bb9'.<br>
clone cowlib and checkout 1.2.0<br>
clone ranch and checkout 1.0.0<br>
<br>
Anybody who does this should get the same code as I have on my machine<br>
is this correct?<br>
</blockquote>
<br></div></div>
This is correct.<span class=""><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Can I trust the tags? - do I have to converts these to shas with git describe<br>
as well?<br>
</blockquote>
<br></span>
You might want to use 'git show --shortstat' instead, describe gives you a different kind of information.<br>
<br>
Don't trust tags. Even mine. While I do not make a habit of changing history, there are some things that could make force me to, like legal requests. You know where you stand with a sha, it's either there with the source just like it's supposed to be, or it's not there at all.<div class="HOEnZb"><div class="h5"><br>
<br>
-- <br>
Loïc Hoguin<br>
<a href="http://ninenines.eu" target="_blank">http://ninenines.eu</a><br>
______________________________<u></u>_________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/<u></u>listinfo/erlang-questions</a><br>
</div></div></blockquote></div><br></div>