<p dir="ltr"><br>
On Apr 13, 2015 5:07 AM, &quot;Radek Holy&quot; &lt;<a href="mailto:rholy@redhat.com">rholy@redhat.com</a>&gt; wrote:<br>
&gt;<br>
&gt;<br>
&gt; ________________________________<br>
&gt;&gt;<br>
&gt;&gt; From: &quot;Pete Travis&quot; &lt;<a href="mailto:lists@petetravis.com">lists@petetravis.com</a>&gt;<br>
&gt;&gt; To: &quot;Development discussions related to Fedora&quot; &lt;<a href="mailto:devel@lists.fedoraproject.org">devel@lists.fedoraproject.org</a>&gt;<br>
&gt;&gt; Sent: Friday, April 10, 2015 5:31:08 PM<br>
&gt;&gt; Subject: Re: dnf replacing yum and dnf-yum<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Apr 10, 2015 4:39 AM, &quot;Radek Holy&quot; &lt;<a href="mailto:rholy@redhat.com">rholy@redhat.com</a>&gt; wrote:<br>
&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Hm, I think that it depends on the use case. AFAIK, distro-sync is mostly used to upgrade Fedora (an unsupported approach AFAIK) and to replace some testing/3rd-party versions of package with the &quot;official&quot; ones. (BTW, I&#39;d appreciate if anyone will share their use case) While in the first case, I think that the upgrade&#39;s behaviour is preferred, in the other case, the install&#39;s behaviour is better IMO. (Which dangerously indicates that the --skip-broken switch is a good solution :( )<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Anyway, file an RFE (if it isn&#39;t filed already) please. We can track/discuss it there.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Thank you in advance<br>
&gt;&gt; &gt; --<br>
&gt;&gt; &gt; Radek Holý<br>
&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;&gt; (lots of trimming, and skipping an RFE, as this just pertains to the distro-sync use case question)<br>
&gt;&gt;<br>
&gt;&gt; distro-sync is useful for getting to a sane state after temporarily enabling some repo that interacts with the primary ones.  This can happen with third party repos, but we can consider an entirely in-house situation:<br>
&gt;&gt;<br>
&gt;&gt; The user finds a bug in widget-2.5.7 and reports it.  A fix for widget is shipped and the user is asked to test via `dnf update widget --enablerepo updates-testing`.  The transaction pulls in many requires from updates-testing (although at this point, I realize dnf may not be upgrading the requires in this transaction if they are not versioned).  The new widget is tested, life goes on.<br>
&gt;&gt;<br>
&gt;&gt; Later, the user wants to install or update some package whizbang that shares requires with widget.  That package has versioned requires on packages from the updates repo, but some of the installed packages are from updates-testing and don&#39;t provide what whizbang needs. <br>
&gt;&gt;<br>
&gt;&gt; Something like `dnf --allowerasing install whizbang` might be the appropriate and precise tool to get through that transaction.  `dnf distro-sync` is the less precise, big-hammer tool for the user that doesn&#39;t know or care to track down the intricacies of widget and whizbang dependencies.   They ran some command from a bug report a while ago and moved on, and now they run distro-sync to return their system to a known-good state and move on.<br>
&gt;&gt;<br>
&gt;&gt; This sort of thing is most common during the prerelease cycle, when users will have updates-testing on then off, and there are freezes, and branching, and lots of activity that might leave early adopters in an unsane state.<br>
&gt;&gt;<br>
&gt;&gt; And yeah, it is very useful for upgrades.  Even when ran after a proper fedup upgrade. <br>
&gt;&gt;<br>
&gt;&gt; --Pete<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt; Yeah, that&#39;s basically what I meant by &#39;replace some testing versions of package with the &quot;official&quot; ones&#39;. Anyway, thank you for elaborating on it. I&#39;ll definitely make a test case from it.<br>
&gt;<br>
&gt; I&#39;d like to let those doing the actions described above know that there is also a not very well known command &quot;dnf repository-packages &lt;repoid&gt; remove-or-distro-sync&quot; which is specifically designed for switching from packages installed from testing/3rd-party repositories<br>
&gt; -- <br>
&gt; Radek Holý<br>
&gt; Associate Software Engineer<br>
&gt; Software Management Team<br>
&gt; Red Hat Czech<br>
&gt;<br>
&gt; --<br></p>
<p dir="ltr">Nice! That&#39;s &lt;repoid&gt; as the stable/updates repo, not the testing/3rd-party/problem repo, right? I&#39;ll add this to my dnf writeup.</p>
<p dir="ltr">--Pete</p>