From owner-svn-ports-all@freebsd.org Thu Aug 30 14:06:29 2018 Return-Path: Delivered-To: svn-ports-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C212B109F61B; Thu, 30 Aug 2018 14:06:29 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 784F581E53; Thu, 30 Aug 2018 14:06:29 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 409E057DD; Thu, 30 Aug 2018 14:06:29 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w7UE6Tmm064291; Thu, 30 Aug 2018 14:06:29 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w7UE6S2b064289; Thu, 30 Aug 2018 14:06:28 GMT (envelope-from des@FreeBSD.org) Message-Id: <201808301406.w7UE6S2b064289@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Thu, 30 Aug 2018 14:06:28 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r478451 - in head/devel/subversion: . files X-SVN-Group: ports-head X-SVN-Commit-Author: des X-SVN-Commit-Paths: in head/devel/subversion: . files X-SVN-Commit-Revision: 478451 X-SVN-Commit-Repository: ports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.27 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Aug 2018 14:06:30 -0000 Author: des Date: Thu Aug 30 14:06:28 2018 New Revision: 478451 URL: https://svnweb.freebsd.org/changeset/ports/478451 Log: Add patch from upstream commit r1839662, which fixes automatic conflict resolution for files removed from the merge target when the merge source and merge target have no proper common ancestor. This is a depressingly common scenario in the FreeBSD base tree. Approved by: maintainer (lev) Obtained from: https://svn.apache.org/r1839662 Added: head/devel/subversion/files/patch-subversion-libsvn_client-conflicts.c (contents, props changed) Modified: head/devel/subversion/Makefile Modified: head/devel/subversion/Makefile ============================================================================== --- head/devel/subversion/Makefile Thu Aug 30 13:39:51 2018 (r478450) +++ head/devel/subversion/Makefile Thu Aug 30 14:06:28 2018 (r478451) @@ -1,7 +1,7 @@ # Created by: rooneg@electricjellyfish.net # $FreeBSD$ -PORTREVISION= 0 +PORTREVISION= 1 MAINTAINER= lev@FreeBSD.org COMMENT= Version control system Added: head/devel/subversion/files/patch-subversion-libsvn_client-conflicts.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/subversion/files/patch-subversion-libsvn_client-conflicts.c Thu Aug 30 14:06:28 2018 (r478451) @@ -0,0 +1,94 @@ +--- subversion/libsvn_client/conflicts.c 2018/08/30 11:27:03 1839661 ++++ subversion/libsvn_client/conflicts.c 2018/08/30 11:39:40 1839662 +@@ -1061,6 +1061,9 @@ + { + apr_array_header_t *moves; + ++ if (b->moves_table == NULL) ++ return SVN_NO_ERROR; ++ + moves = apr_hash_get(b->moves_table, &log_entry->revision, + sizeof(svn_revnum_t)); + if (moves) +@@ -2205,8 +2208,8 @@ + * If the node was replaced rather than deleted, set *REPLACING_NODE_KIND to + * the node kind of the replacing node. Else, set it to svn_node_unknown. + * Only request the log for revisions up to END_REV from the server. +- * If the deleted node was moved, provide heads of move chains in *MOVES. +- * If the node was not moved,set *MOVES to NULL. ++ * If MOVES it not NULL, and the deleted node was moved, provide heads of ++ * move chains in *MOVES, or, if the node was not moved, set *MOVES to NULL. + */ + static svn_error_t * + find_revision_for_suspected_deletion(svn_revnum_t *deleted_rev, +@@ -2243,10 +2246,11 @@ + scratch_pool)); + victim_abspath = svn_client_conflict_get_local_abspath(conflict); + +- SVN_ERR(find_moves_in_revision_range(&moves_table, parent_repos_relpath, +- repos_root_url, repos_uuid, +- victim_abspath, start_rev, end_rev, +- ctx, result_pool, scratch_pool)); ++ if (moves) ++ SVN_ERR(find_moves_in_revision_range(&moves_table, parent_repos_relpath, ++ repos_root_url, repos_uuid, ++ victim_abspath, start_rev, end_rev, ++ ctx, result_pool, scratch_pool)); + + url = svn_path_url_add_component2(repos_root_url, parent_repos_relpath, + scratch_pool); +@@ -2271,7 +2275,8 @@ + b.repos_root_url = repos_root_url; + b.repos_uuid = repos_uuid; + b.ctx = ctx; +- b.moves_table = moves_table; ++ if (moves) ++ b.moves_table = moves_table; + b.result_pool = result_pool; + SVN_ERR(svn_ra__dup_session(&b.extra_ra_session, ra_session, NULL, + scratch_pool, scratch_pool)); +@@ -2301,7 +2306,7 @@ + { + struct repos_move_info *move = b.move; + +- if (move) ++ if (moves && move) + { + *deleted_rev = move->rev; + *deleted_rev_author = move->rev_author; +@@ -2319,7 +2324,8 @@ + *deleted_rev = SVN_INVALID_REVNUM; + *deleted_rev_author = NULL; + *replacing_node_kind = svn_node_unknown; +- *moves = NULL; ++ if (moves) ++ *moves = NULL; + } + return SVN_NO_ERROR; + } +@@ -2328,10 +2334,11 @@ + *deleted_rev = b.deleted_rev; + *deleted_rev_author = b.deleted_rev_author; + *replacing_node_kind = b.replacing_node_kind; +- SVN_ERR(find_operative_moves(moves, moves_table, +- b.deleted_repos_relpath, b.deleted_rev, +- ra_session, repos_root_url, +- result_pool, scratch_pool)); ++ if (moves) ++ SVN_ERR(find_operative_moves(moves, moves_table, ++ b.deleted_repos_relpath, b.deleted_rev, ++ ra_session, repos_root_url, ++ result_pool, scratch_pool)); + } + + return SVN_NO_ERROR; +@@ -2723,7 +2730,8 @@ + end_rev = 0; /* ### We might walk through all of history... */ + + SVN_ERR(find_revision_for_suspected_deletion( +- &deleted_rev, &deleted_rev_author, &replacing_node_kind, &moves, ++ &deleted_rev, &deleted_rev_author, &replacing_node_kind, ++ yca_loc ? &moves : NULL, + conflict, deleted_basename, parent_repos_relpath, + parent_peg_rev, end_rev, related_repos_relpath, related_peg_rev, + ctx, conflict->pool, scratch_pool));