code: def _process_how_args(merge, how, how_subds):
      """Resolve how-related arguments into `how` and `how_subds` values."""
      # Translate old --merge value onto --how
      if merge and (how or how_subds):
          raise ValueError(
              "`merge` is incompatible with `how` and `how_subds`"
          )
      elif merge == "ff-only":
          how = merge
      elif merge:
          how = "merge"
  
      if how == "fetch":
          how = None
  
      # Map "fetch" to None for easier conditions.
      if how_subds == "fetch":
          how_subds = None
      elif how_subds is None:
          # Subdatasets are updated according to --how unless --how-subds is
          # given.
          how_subds = how
      return how, how_subds
  
imports: import logging
  from os.path import lexists
  import itertools
  from datalad.interface.base import Interface
  from datalad.interface.base import build_doc, eval_results
  from datalad.interface.results import get_status_dict, YieldDatasets
  from datalad.support.constraints import EnsureBool, EnsureChoice, EnsureStr, EnsureNone
  from datalad.support.annexrepo import AnnexRepo
  from datalad.support.exceptions import CapturedException, CommandError
  from datalad.support.param import Parameter
  from datalad.interface.common_opts import recursion_flag, recursion_limit
  from datalad.distribution.dataset import require_dataset
  from .dataset import EnsureDataset, datasetmethod
label_desc: Use image node_id 1 for calling a global function with example usage: _process_how_args(merge, how, how_subds) and returns: how,  how_subds