[123768] trunk/base/src/macports1.0/macports.tcl

Eric Cronin ecronin at macports.org
Thu Aug 14 09:50:58 PDT 2014


> On Aug 14, 2014, at 3:58 AM, Lawrence Velázquez <larryv at macports.org> 
> wrote:
> 
>> I thought that "port sync" failed immediately if any of the source 
>> syncs exited with a failure status, but I may have been 
>> misinterpreting the output I saw, since my git-svn repository is last 
>> in my sources list.
> 
> I double-checked; what happens is that PortIndex will not be run for a
> git-svn source if "git svn rebase" fails. This happens fairly commonly
> — for example, if there are unstaged changes in your working tree.
> 
> Ignoring the failure does feel a little wrong. One alternative would
> be to bookend the update operation with "git stash" and "git stash
> pop". Manual merge resolution might be required after the pop, but
> that wouldn't be any worse than what Subversion does currently.
> 

My original patch to add this that's in trac somewhere (#27485 it looks 
like) did this, but others thought stash/stash pop was bad so I removed 
it and just got in the habit of committing everything locally instead 
(since it's going back to svn there's definitely no issue in commit 
--amending liberally).  I think we still pull --rebase on the 
non-git-svn case so that mode can't really work to manage a local repo 
that's pulled from itself.

The pushd/popd came from the existing svn support, since it makes no 
sense in a system() call I assumed it was intentionally done for the 
output vs a single cd at the start (system -W didn't exist yet back then 
I think).

As for the working directory, the special casing to handle all the 
possibilities (is the git root dports/ or a full macports checkout where 
dports is a level in? what about a completely different non-macports.org 
git repo layout?) meant you were basically rewriting all the git logic 
but not as thorough, so just cding in was the best way.  Different 
versions of git also had different arguments for setting the gitdir and 
working dir, and I think early releases didn't have a workingdir flag at 
all.

Thanks,
Eric


More information about the macports-dev mailing list