Understanding apache-ivy 2.4.0, I found out that the source-tarball code in the published one and the code in the repository are different. Why is the code not the same? Why is this done for the Java project? Perhaps this is some general pattern or practice - tell me.

For a C ++ project, I could come up with a reason. For example, it is possible to pack in a source-tarball code prepared for platform-specific copying, and pre-generate / compile everything that is platform-independent. But why is it necessary for Java?

Links to the repository and the source-tarball apache-ivy 2.4.0 are here: https://ant.apache.org/ivy/download.cgi

Ps. (give two different links and create an apache-ivy tag I don't have enough reputation)

  • If you are given an exhaustive answer, mark it as correct (a daw opposite the selected answer). - Nicolas Chabanovsky

1 answer 1

In the tarball, you download the source code for release 2.4.0.

From the repository, you download the current version of the source code. If you look at the commit history, you can see that release 2.4.0 corresponds to the commit c8150bddf2fc99e5467c203d6a28758a0820a237 dated December 26, 2014. Since then, 24 commits have been reached. Hence the difference.

If you make a git checkout for the mentioned commit, you will find the same as in the tarball.


If you are confused by the lack of some files and directories in the archive (.settings, .checkstyle, etc.) - it is obvious that the developers "clean" the source code before rolling out to the tarball: remove project files that are needed only by the team during development, but not end user to build a project.

  • Thanks for the answer! I did not quite understand how you found this commit. I searched by tag and found this one: git-wip-us.apache.org/repos/asf?p=ant-ivy.git;a=tag;h=refs/tags/… - dima125
  • Just looked at the commit history. - Nofate
  • Yes, I am confused by the lack of some files in the tarball. If there is a practice to clean up everything that is not needed for assembly, then why was there documentation left? Why does a user need a tarball if there is an assembled version? IMHO, if the tarball is for the programmer, then there should be all the files. - dima125
  • The contents of the c8150bddf2fc99e5467c203d6a28758a0820a237 comedy are also different from the contents of the tarball. Or am I using git incorrectly? - dima125
  • Once again, in turnips - source codes with which the development team works. There may lie anything that is required at the moment to the team, even though recipes for coffee cocktails. Tarball is a source distribution. It contains everything you need to build and deploy an application to a consumer (including documentation). - Nofate