Summary: | kdesrc-build aborts in calligra with local change | ||
---|---|---|---|
Product: | [Developer tools] kdesrc-build | Reporter: | David Faure <faure> |
Component: | general | Assignee: | Michael Pyne <mpyne> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | NOR | ||
Version: | 1.12.1 | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
David Faure
2011-02-03 19:20:21 UTC
I think I broke it in this commit [1]. safe_system() shift-rights the status code of system to strip the high-order bit being checked for in the exception error message, so now the check is wrong since just calling system() did the right thing. Perhaps I'll be able to fix it during class this evening which I'm about to leave for. :-/ [1] https://projects.kde.org/projects/extragear/utils/kdesrc-build/repository/revisions/2b0d0d62481880ffc1e1f0e4820f2944b78610d3 Git commit 7c2ee0f7141405c0c739518ce3997003708efcf2 by Michael Pyne. Committed on 03/02/11 at 23:56. Pushed by mpyne into branch 'master'. Fix detection of whether git-stash is needed. I broke the code that determines whether git-stash is determined in commit 2b0d0d62481880ffc1e1f0e4820f2944b78610d3. The problem is that the system() Perl function returns the exit code and miscellaneous process exit data (such as whether the process failed to run, etc.) and I actually needed that data. In the commit I refer to, I switched to my safe_system() which only returns the exit code and now kdesrc-build thought there was an error running git, when instead git was returning the proper exit code for a module with local changes. Thanks to dfaure for the report. Not closing the bug here in case I merge this somewhere else later. CCBUG:265325 M +3 -2 kdesrc-build http://commits.kde.org/kdesrc-build/7c2ee0f7141405c0c739518ce3997003708efcf2 David mentioned on IRC that he still has the issue even after commit 7c2ee0f. I've double-checked here and both leaving unstaged changes (git add hasn't been run yet) and leaving staged-but-uncommitted changes (no git-commit) cause kdesrc-build to properly run git-stash. Note, you only see the info message if using --src-only or --no-async. If performing a normal run you should still get log files for stash-apply and stash-pop in the log/latest/$module directory though. Also the only commands that should not show up in --debug output are the raw Perl system() calls, and that is limited to the 2 git --diff variants, git show-ref in the git_has_branch subroutine, svn-status for the old Coverity support, and ssh-add for SSH agent checking. Please reopen if you are able to get a more reliable way of reproducing so I can track down the rest. :) Holy crap, I suck. Somehow kdesrc-build got installed into the kdesupport prefix, and all my "updating and reinstalling kdesrc-build" was updating the one in the kde prefix. I noticed this when starting to insert debug output into kdesrc-build :-) You were right, your commit fixed this, I just didn't test it properly. My apologies. |