Fixer un ordre de tri transforme un ensemble d’entrées en une séquence canonique. Ainsi, quel que soit l’ordre dans lequel les fichiers ou éléments sont découverts — système de fichiers, exécution parallèle, table de hachage, requête sans ORDER BY — ils sont toujours traités dans le même ordre.

C’est important car de nombreuses opérations ne sont pas commutatives : concaténation, hachage incrémental, création d’archives, attribution d’identifiants ou édition de liens peuvent produire des octets différents si l’ordre change. Un tri stable et total supprime donc cette source de non-déterminisme et permet d’obtenir le même artefact et la même empreinte à partir des mêmes entrées.

Le tri doit lui-même être indépendant de l’environnement, par exemple fondé sur les octets ou avec LC_ALL=C, et départager explicitement les clés égales. Il ne règle toutefois pas les autres causes de non-reproductibilité, comme les horodatages, chemins absolus, valeurs aléatoires ou métadonnées variables.