View | Details | Raw Unified | Return to bug 192577 | Differences between
and this patch

Collapse All | Expand All

(-)usr.sbin/mergemaster/mergemaster.sh (-22 / +56 lines)
Lines 12-17 Link Here
12
12
13
PATH=/bin:/usr/bin:/usr/sbin
13
PATH=/bin:/usr/bin:/usr/sbin
14
14
15
DIFF_TMP=/var/tmp/tmp.mergemaster`date +%m%d.%H.%M.%S`
16
DIFF_COMMENTS_PASS=no
17
15
display_usage () {
18
display_usage () {
16
  VERSION_NUMBER=`grep "[$]FreeBSD:" $0 | cut -d ' ' -f 4`
19
  VERSION_NUMBER=`grep "[$]FreeBSD:" $0 | cut -d ' ' -f 4`
17
  echo "mergemaster version ${VERSION_NUMBER}"
20
  echo "mergemaster version ${VERSION_NUMBER}"
Lines 139-153 Link Here
139
        esac
142
        esac
140
      fi
143
      fi
141
      if [ "${HANDLE_COMPFILE}" = "v" -o "${HANDLE_COMPFILE}" = "V" ]; then
144
      if [ "${HANDLE_COMPFILE}" = "v" -o "${HANDLE_COMPFILE}" = "V" ]; then
142
	echo ''
145
        diff ${DIFF_FLAG} ${DIFF_OPTIONS} "${DESTDIR}${COMPFILE#.}" "${COMPFILE}" > ${DIFF_TMP}
143
	echo '   ======================================================================   '
146
        # See if differences are in comments only
144
	echo ''
147
        DIFF_COMMENTS_ONLY=no
145
        (
148
        if [ ${DIFF_FLAG} == "-u" ]; then
146
          echo "  *** Displaying differences between ${COMPFILE} and installed version:"
149
          if [ "`tail -n+3 ${DIFF_TMP} | grep -E "^(\\+|\\-)"`" == \
150
               "`tail -n+3 ${DIFF_TMP} | grep -E "^(\\+|\\-)#"`" ]; then
151
            DIFF_COMMENTS_ONLY=yes
152
          fi
153
        fi
154
        if [ ${DIFF_FLAG} == "-c" ]; then
155
          if [ "`tail -n+3 ${DIFF_TMP} | grep -E "^! "`" == \
156
               "`tail -n+3 ${DIFF_TMP} | grep -E "^! #"`" ]; then
157
            DIFF_COMMENTS_ONLY=yes
158
          fi
159
        fi
160
        # Display the file if differences are substantial or user wants to see all of them
161
        if [ ${DIFF_COMMENTS_ONLY} == "no" -o ${DIFF_COMMENTS_PASS} == "no" ]; then
147
          echo ''
162
          echo ''
148
          diff ${DIFF_FLAG} ${DIFF_OPTIONS} "${DESTDIR}${COMPFILE#.}" "${COMPFILE}"
163
          echo '   ======================================================================   '
149
        ) | ${PAGER}
164
          echo ''
150
        echo ''
165
          (
166
            echo "  *** Displaying differences between ${COMPFILE} and installed version:"
167
            echo ''
168
            cat ${DIFF_TMP}
169
          ) | ${PAGER}
170
          echo ''
171
        fi
172
        rm -f ${DIFF_TMP}
151
      fi
173
      fi
152
    else
174
    else
153
      echo ''
175
      echo ''
Lines 173-191 Link Here
173
      esac
195
      esac
174
    fi
196
    fi
175
197
176
    echo "  Use 'd' to delete the temporary ${COMPFILE}"
198
    if [ ${DIFF_COMMENTS_ONLY} == "no" -o ${DIFF_COMMENTS_PASS} == "no" ]; then
177
    echo "  Use 'i' to install the temporary ${COMPFILE}"
199
      echo "  Use 'd' to delete the temporary ${COMPFILE}"
178
    case "${NO_INSTALLED}" in
200
      echo "  Use 'i' to install the temporary ${COMPFILE}"
179
    '')
201
      if [ ${DIFF_COMMENTS_ONLY} == "yes" ]; then
180
      echo "  Use 'm' to merge the temporary and installed versions"
202
        echo "  Use 'a' to install the temporary ${COMPFILE} and other files"
181
      echo "  Use 'v' to view the diff results again"
203
        echo "                     that only differ in comments"
182
      ;;
204
      fi
183
    esac
205
      case "${NO_INSTALLED}" in
184
    echo ''
206
      '')
185
    echo "  Default is to leave the temporary file to deal with by hand"
207
        echo "  Use 'm' to merge the temporary and installed versions"
186
    echo ''
208
        echo "  Use 'v' to view the diff results again"
187
    echo -n "How should I deal with this? [Leave it for later] "
209
        ;;
188
    read HANDLE_COMPFILE
210
      esac
211
      echo ''
212
      echo "  Default is to leave the temporary file to deal with by hand"
213
      echo ''
214
      echo -n "How should I deal with this? [Leave it for later] "
215
      read HANDLE_COMPFILE
216
    else
217
      # Pass automatically
218
      HANDLE_COMPFILE="p"
219
    fi
189
220
190
    case "${HANDLE_COMPFILE}" in
221
    case "${HANDLE_COMPFILE}" in
191
    [dD])
222
    [dD])
Lines 193-199 Link Here
193
      echo ''
224
      echo ''
194
      echo "   *** Deleting ${COMPFILE}"
225
      echo "   *** Deleting ${COMPFILE}"
195
      ;;
226
      ;;
196
    [iI])
227
    [iIaAp])
197
      echo ''
228
      echo ''
198
      if mm_install "${COMPFILE}"; then
229
      if mm_install "${COMPFILE}"; then
199
        echo "   *** ${COMPFILE} installed successfully"
230
        echo "   *** ${COMPFILE} installed successfully"
Lines 200-205 Link Here
200
      else
231
      else
201
        echo "   *** Problem installing ${COMPFILE}, it will remain to merge by hand"
232
        echo "   *** Problem installing ${COMPFILE}, it will remain to merge by hand"
202
      fi
233
      fi
234
      if [ ${HANDLE_COMPFILE} == "a" -o ${HANDLE_COMPFILE} == "A" ]; then
235
        DIFF_COMMENTS_PASS=yes
236
      fi
203
      ;;
237
      ;;
204
    [mM])
238
    [mM])
205
      case "${NO_INSTALLED}" in
239
      case "${NO_INSTALLED}" in

Return to bug 192577