On 15/08/13 17:08, Johannes Ernst wrote: > I'm trying to understand what may and may not go wrong between package > uploads to a repository, repository synchronization via rsync (which seems > to be the preferred method for mirrors to get their stuff) and downloads > via pacman. > > Assume a developer uploads a new version of two packages to a repository. > My understanding is that uploads delete the older version of the uploaded > package currently in the repository. (unlike other package management > systems e.g. debian's where multiple versions of the same package can > reside in the same repository). > > An hour later, a mirror repository starts rsycing. While the rsync is > ongoing, a user uses pacman to download both packages from the mirror. > > Question: what mechanisms exists, if any, to avoid that the user gets the > old version of package A and the new version of package B? (assume the > rsync is still ongoing while the download occurs) The database file will either have both new packages or no new packages. > It seems the "safe" way of doing the rsync would be to take down the mirror > during the critical section (when all old versions are removed and the new > ones put there instead), and restart it afterwards? Or is there something > somewhere that I'm not seeing? The debian guys probably keep the old > version(s) around for exactly that reason... > > Any insight very much appreciated ...