Alien-SVN

 view release on metacpan or  search on metacpan

src/subversion/CHANGES  view on Meta::CPAN



Version 1.0.1
(12 March 2004, from /branches/1.0.x)
http://svn.apache.org/repos/asf/subversion/tags/1.0.1

 User-visible changes:
 * allow anonymous access checking in mod_authz_svn
 * fixed: mod_authz_svn now works with SVNParentPath (issue #1588)
 * fixed: potential segfault in mod_dav_svn. 
 * fixed: improper BDB cursor shutdown in libsvn_fs, which can wedge repos.
 * fixed: allow checkout of repository with space in path. (issue #1694)
 * fixed: make 'svn propget URL' work correctly over svn://. (issue #1752)
 * fixed: failed 'svn merge URL' when URL contains user@host. (issue #1759)
 * fixed: invalid REPORT response when updating a deleted wc. (issue #1721)
 * fixed: allow deletes below copied wc dirs.
 * fixed: merge --dry-run bug on added-files with props. (issue #1738)
 * fixed: svnlook no longer requires write access to '.'
 * fixed: ensure 'svn blame' fails on files marked as binary. (issue #1733)
 * fixed: make failed direct-URL commits clean up their fs txns. (issue #1726)
 * fixed: obscure bugs in time/date string formatting. (issue #1692)

src/subversion/subversion/include/svn_io.h  view on Meta::CPAN

 * @deprecated Provided for backwards compatibility with the 1.4 API.
 */
SVN_DEPRECATED
svn_error_t *
svn_stringbuf_from_file(svn_stringbuf_t **result,
                        const char *filename,
                        apr_pool_t *pool);

/** Sets @a *result to a string containing the contents of the already opened
 * @a file.  Reads from the current position in file to the end.  Does not
 * close the file or reset the cursor position.
 *
 * @note due to memory pseudo-reallocation behavior (due to pools), this
 *   can be a memory-intensive operation for large files.
 */
svn_error_t *
svn_stringbuf_from_aprfile(svn_stringbuf_t **result,
                           apr_file_t *file,
                           apr_pool_t *pool);

/** Remove file @a path, a utf8-encoded path.  This wraps apr_file_remove(),

src/subversion/subversion/libsvn_diff/parse-diff.c  view on Meta::CPAN

#include "private/svn_dep_compat.h"

/* Helper macro for readability */
#define starts_with(str, start)  \
  (strncmp((str), (start), strlen(start)) == 0)

/* Like strlen() but for string literals. */
#define STRLEN_LITERAL(str) (sizeof(str) - 1)

/* This struct describes a range within a file, as well as the
 * current cursor position within the range. All numbers are in bytes. */
struct svn_diff__hunk_range {
  apr_off_t start;
  apr_off_t end;
  apr_off_t current;
};

struct svn_diff_hunk_t {
  /* The patch this hunk belongs to. */
  svn_patch_t *patch;

src/subversion/subversion/libsvn_fs_base/bdb/bdb_compat.h  view on Meta::CPAN

#endif

/* In BDB 4.3 and later, the file names in DB_ENV->open and DB->open
   are assumed to be encoded in UTF-8 on Windows. */
#if defined(WIN32) && SVN_BDB_VERSION_AT_LEAST(4,3)
#define SVN_BDB_PATH_UTF8 (1)
#else
#define SVN_BDB_PATH_UTF8 (0)
#endif

/* In BDB 4.6, the cursor routines were renamed, and the old names
   deprecated. */
#if SVN_BDB_VERSION_AT_LEAST(4,6)
#define svn_bdb_dbc_close(c)         ((c)->close(c))
#define svn_bdb_dbc_count(c,r,f)     ((c)->count(c,r,f))
#define svn_bdb_dbc_del(c,f)         ((c)->del(c,f))
#define svn_bdb_dbc_dup(c,p,f)       ((c)->dup(c,p,f))
#define svn_bdb_dbc_get(c,k,d,f)     ((c)->get(c,k,d,f))
#define svn_bdb_dbc_pget(c,k,p,d,f)  ((c)->pget(c,k,p,d,f))
#define svn_bdb_dbc_put(c,k,d,f)     ((c)->put(c,k,d,f))
#else

src/subversion/subversion/libsvn_fs_base/bdb/changes-table.c  view on Meta::CPAN



svn_error_t *
svn_fs_bdb__changes_fetch(apr_hash_t **changes_p,
                          svn_fs_t *fs,
                          const char *key,
                          trail_t *trail,
                          apr_pool_t *pool)
{
  base_fs_data_t *bfd = fs->fsap_data;
  DBC *cursor;
  DBT query, result;
  int db_err = 0, db_c_err = 0;
  svn_error_t *err = SVN_NO_ERROR;
  apr_hash_t *changes = apr_hash_make(pool);
  apr_pool_t *subpool = svn_pool_create(pool);

  /* Get a cursor on the first record matching KEY, and then loop over
     the records, adding them to the return array. */
  svn_fs_base__trail_debug(trail, "changes", "cursor");
  SVN_ERR(BDB_WRAP(fs, N_("creating cursor for reading changes"),
                   bfd->changes->cursor(bfd->changes, trail->db_txn,
                                        &cursor, 0)));

  /* Advance the cursor to the key that we're looking for. */
  svn_fs_base__str_to_dbt(&query, key);
  svn_fs_base__result_dbt(&result);
  db_err = svn_bdb_dbc_get(cursor, &query, &result, DB_SET);
  if (! db_err)
    svn_fs_base__track_dbt(&result, pool);

  while (! db_err)
    {
      change_t *change;
      svn_skel_t *result_skel;

      /* Clear the per-iteration subpool. */
      svn_pool_clear(subpool);

src/subversion/subversion/libsvn_fs_base/bdb/changes-table.c  view on Meta::CPAN

              apr_hash_this(hi, &hashkey, &klen, NULL);

              /* If we come across our own path, ignore it.
                 If we come across a child of our path, remove it. */
              child_relpath = svn_fspath__skip_ancestor(change->path, hashkey);
              if (child_relpath && *child_relpath)
                apr_hash_set(changes, hashkey, klen, NULL);
            }
        }

      /* Advance the cursor to the next record with this same KEY, and
         fetch that record. */
      svn_fs_base__result_dbt(&result);
      db_err = svn_bdb_dbc_get(cursor, &query, &result, DB_NEXT_DUP);
      if (! db_err)
        svn_fs_base__track_dbt(&result, pool);
    }

  /* Destroy the per-iteration subpool. */
  svn_pool_destroy(subpool);

  /* If there are no (more) change records for this KEY, we're
     finished.  Just return the (possibly empty) array.  Any other
     error, however, needs to get handled appropriately.  */
  if (db_err && (db_err != DB_NOTFOUND))
    err = BDB_WRAP(fs, N_("fetching changes"), db_err);

 cleanup:
  /* Close the cursor. */
  db_c_err = svn_bdb_dbc_close(cursor);

  /* If we had an error prior to closing the cursor, return the error. */
  if (err)
    return svn_error_trace(err);

  /* If our only error thus far was when we closed the cursor, return
     that error. */
  if (db_c_err)
    SVN_ERR(BDB_WRAP(fs, N_("closing changes cursor"), db_c_err));

  /* Finally, set our return variable and get outta here. */
  *changes_p = changes;
  return SVN_NO_ERROR;
}


svn_error_t *
svn_fs_bdb__changes_fetch_raw(apr_array_header_t **changes_p,
                              svn_fs_t *fs,
                              const char *key,
                              trail_t *trail,
                              apr_pool_t *pool)
{
  base_fs_data_t *bfd = fs->fsap_data;
  DBC *cursor;
  DBT query, result;
  int db_err = 0, db_c_err = 0;
  svn_error_t *err = SVN_NO_ERROR;
  change_t *change;
  apr_array_header_t *changes = apr_array_make(pool, 4, sizeof(change));

  /* Get a cursor on the first record matching KEY, and then loop over
     the records, adding them to the return array. */
  svn_fs_base__trail_debug(trail, "changes", "cursor");
  SVN_ERR(BDB_WRAP(fs, N_("creating cursor for reading changes"),
                   bfd->changes->cursor(bfd->changes, trail->db_txn,
                                        &cursor, 0)));

  /* Advance the cursor to the key that we're looking for. */
  svn_fs_base__str_to_dbt(&query, key);
  svn_fs_base__result_dbt(&result);
  db_err = svn_bdb_dbc_get(cursor, &query, &result, DB_SET);
  if (! db_err)
    svn_fs_base__track_dbt(&result, pool);

  while (! db_err)
    {
      svn_skel_t *result_skel;

      /* RESULT now contains a change record associated with KEY.  We
         need to parse that skel into an change_t structure ...  */
      result_skel = svn_skel__parse(result.data, result.size, pool);

src/subversion/subversion/libsvn_fs_base/bdb/changes-table.c  view on Meta::CPAN

                                  key);
          goto cleanup;
        }
      err = svn_fs_base__parse_change_skel(&change, result_skel, pool);
      if (err)
        goto cleanup;

      /* ... and add it to our return array.  */
      APR_ARRAY_PUSH(changes, change_t *) = change;

      /* Advance the cursor to the next record with this same KEY, and
         fetch that record. */
      svn_fs_base__result_dbt(&result);
      db_err = svn_bdb_dbc_get(cursor, &query, &result, DB_NEXT_DUP);
      if (! db_err)
        svn_fs_base__track_dbt(&result, pool);
    }

  /* If there are no (more) change records for this KEY, we're
     finished.  Just return the (possibly empty) array.  Any other
     error, however, needs to get handled appropriately.  */
  if (db_err && (db_err != DB_NOTFOUND))
    err = BDB_WRAP(fs, N_("fetching changes"), db_err);

 cleanup:
  /* Close the cursor. */
  db_c_err = svn_bdb_dbc_close(cursor);

  /* If we had an error prior to closing the cursor, return the error. */
  if (err)
    return svn_error_trace(err);

  /* If our only error thus far was when we closed the cursor, return
     that error. */
  if (db_c_err)
    SVN_ERR(BDB_WRAP(fs, N_("closing changes cursor"), db_c_err));

  /* Finally, set our return variable and get outta here. */
  *changes_p = changes;
  return SVN_NO_ERROR;
}

src/subversion/subversion/libsvn_fs_base/bdb/env.c  view on Meta::CPAN

   allocate each environment descriptor (a bdb_env_t) from its own
   pool.  The cache itself (and the cache pool) are shared between
   threads, so all direct or indirect access to the pool is serialized
   with a global mutex.

   Because several threads can now use the same DB_ENV handle, we must
   use the DB_THREAD flag when opening the environments, otherwise the
   env handles (and all of libsvn_fs_base) won't be thread-safe.

   If we use DB_THREAD, however, all of the code that reads data from
   the database without a cursor must use either DB_DBT_MALLOC,
   DB_DBT_REALLOC, or DB_DBT_USERMEM, as described in the BDB
   documentation.

   (Oh, yes -- using DB_THREAD might not work on some systems. But
   then, it's quite probable that threading is seriously broken on
   those systems anyway, so we'll rely on APR_HAS_THREADS.)
*/


/* The cache key for a Berkeley DB environment descriptor.  This is a

src/subversion/subversion/libsvn_fs_base/bdb/locks-table.c  view on Meta::CPAN

svn_error_t *
svn_fs_bdb__locks_get(svn_fs_t *fs,
                      const char *path,
                      svn_depth_t depth,
                      svn_fs_get_locks_callback_t get_locks_func,
                      void *get_locks_baton,
                      trail_t *trail,
                      apr_pool_t *pool)
{
  base_fs_data_t *bfd = fs->fsap_data;
  DBC *cursor;
  DBT key, value;
  int db_err, db_c_err;
  apr_pool_t *subpool = svn_pool_create(pool);
  const char *lock_token;
  svn_lock_t *lock;
  svn_error_t *err;
  const char *lookup_path = path;
  apr_size_t lookup_len;

  /* First, try to lookup PATH itself. */

src/subversion/subversion/libsvn_fs_base/bdb/locks-table.c  view on Meta::CPAN

          return SVN_NO_ERROR;
        }
    }

  /* If we're only looking at PATH itself (depth = empty), stop here. */
  if (depth == svn_depth_empty)
    return SVN_NO_ERROR;

  /* Now go hunt for possible children of PATH. */

  svn_fs_base__trail_debug(trail, "lock-tokens", "cursor");
  db_err = bfd->lock_tokens->cursor(bfd->lock_tokens, trail->db_txn,
                                    &cursor, 0);
  SVN_ERR(BDB_WRAP(fs, N_("creating cursor for reading lock tokens"),
                   db_err));

  /* Since the key is going to be returned as well as the value make
     sure BDB malloc's the returned key.  */
  svn_fs_base__str_to_dbt(&key, lookup_path);
  key.flags |= DB_DBT_MALLOC;

  /* Get the first matching key that is either equal or greater than
     the one passed in, by passing in the DB_RANGE_SET flag.  */
  db_err = svn_bdb_dbc_get(cursor, &key, svn_fs_base__result_dbt(&value),
                           DB_SET_RANGE);

  if (!svn_fspath__is_root(path, strlen(path)))
    lookup_path = apr_pstrcat(pool, path, "/", (char *)NULL);
  lookup_len = strlen(lookup_path);

  /* As long as the prefix of the returned KEY matches LOOKUP_PATH we
     know it is either LOOKUP_PATH or a decendant thereof.  */
  while ((! db_err)
         && lookup_len < key.size

src/subversion/subversion/libsvn_fs_base/bdb/locks-table.c  view on Meta::CPAN

             this item.   */
          const char *rel_path = svn_fspath__skip_ancestor(path, child_path);
          if (!rel_path || (svn_path_component_count(rel_path) != 1))
            goto loop_it;
        }

      /* Get the lock for CHILD_PATH.  */
      err = get_lock(&lock, fs, child_path, lock_token, trail, subpool);
      if (err)
        {
          svn_bdb_dbc_close(cursor);
          return svn_error_trace(err);
        }

      /* Lock is verified, hand it off to our callback. */
      if (lock && get_locks_func)
        {
          err = get_locks_func(get_locks_baton, lock, subpool);
          if (err)
            {
              svn_bdb_dbc_close(cursor);
              return svn_error_trace(err);
            }
        }

    loop_it:
      svn_fs_base__result_dbt(&key);
      svn_fs_base__result_dbt(&value);
      db_err = svn_bdb_dbc_get(cursor, &key, &value, DB_NEXT);
    }

  svn_pool_destroy(subpool);
  db_c_err = svn_bdb_dbc_close(cursor);

  if (db_err && (db_err != DB_NOTFOUND))
    SVN_ERR(BDB_WRAP(fs, N_("fetching lock tokens"), db_err));
  if (db_c_err)
    SVN_ERR(BDB_WRAP(fs, N_("fetching lock tokens (closing cursor)"),
                     db_c_err));

  return SVN_NO_ERROR;
}

src/subversion/subversion/libsvn_fs_base/bdb/rev-table.c  view on Meta::CPAN



svn_error_t *
svn_fs_bdb__youngest_rev(svn_revnum_t *youngest_p,
                         svn_fs_t *fs,
                         trail_t *trail,
                         apr_pool_t *pool)
{
  base_fs_data_t *bfd = fs->fsap_data;
  int db_err;
  DBC *cursor = 0;
  DBT key, value;
  db_recno_t recno;

  SVN_ERR(svn_fs__check_fs(fs, TRUE));

  /* Create a database cursor.  */
  svn_fs_base__trail_debug(trail, "revisions", "cursor");
  SVN_ERR(BDB_WRAP(fs, N_("getting youngest revision (creating cursor)"),
                   bfd->revisions->cursor(bfd->revisions, trail->db_txn,
                                          &cursor, 0)));

  /* Find the last entry in the `revisions' table.  */
  db_err = svn_bdb_dbc_get(cursor,
                           svn_fs_base__recno_dbt(&key, &recno),
                           svn_fs_base__nodata_dbt(&value),
                           DB_LAST);

  if (db_err)
    {
      /* Free the cursor.  Ignore any error value --- the error above
         is more interesting.  */
      svn_bdb_dbc_close(cursor);

      if (db_err == DB_NOTFOUND)
        /* The revision 0 should always be present, at least.  */
        return
          svn_error_createf
          (SVN_ERR_FS_CORRUPT, 0,
           "Corrupt DB: revision 0 missing from 'revisions' table, in "
           "filesystem '%s'", fs->path);

      SVN_ERR(BDB_WRAP(fs, N_("getting youngest revision (finding last entry)"),
                       db_err));
    }

  /* You can't commit a transaction with open cursors, because:
     1) key/value pairs don't get deleted until the cursors referring
     to them are closed, so closing a cursor can fail for various
     reasons, and txn_commit shouldn't fail that way, and
     2) using a cursor after committing its transaction can cause
     undetectable database corruption.  */
  SVN_ERR(BDB_WRAP(fs, N_("getting youngest revision (closing cursor)"),
                   svn_bdb_dbc_close(cursor)));

  /* Turn the record number into a Subversion revision number.
     Revisions are numbered starting with zero; Berkeley DB record
     numbers begin with one.  */
  *youngest_p = recno - 1;
  return SVN_NO_ERROR;
}

src/subversion/subversion/libsvn_fs_base/bdb/strings-table.c  view on Meta::CPAN




/*** Storing and retrieving strings.  ***/

/* Allocate *CURSOR and advance it to first row in the set of rows
   whose key is defined by QUERY.  Set *LENGTH to the size of that
   first row.  */
static svn_error_t *
locate_key(apr_size_t *length,
           DBC **cursor,
           DBT *query,
           svn_fs_t *fs,
           trail_t *trail,
           apr_pool_t *pool)
{
  base_fs_data_t *bfd = fs->fsap_data;
  int db_err;
  DBT result;

  svn_fs_base__trail_debug(trail, "strings", "cursor");
  SVN_ERR(BDB_WRAP(fs, N_("creating cursor for reading a string"),
                   bfd->strings->cursor(bfd->strings, trail->db_txn,
                                        cursor, 0)));

  /* Set up the DBT for reading the length of the record. */
  svn_fs_base__clear_dbt(&result);
  result.ulen = 0;
  result.flags |= DB_DBT_USERMEM;

  /* Advance the cursor to the key that we're looking for. */
  db_err = svn_bdb_dbc_get(*cursor, query, &result, DB_SET);

  /* We don't need to svn_fs_base__track_dbt() the result, because nothing
     was allocated in it. */

  /* If there's no such node, return an appropriately specific error.  */
  if (db_err == DB_NOTFOUND)
    {
      svn_bdb_dbc_close(*cursor);
      return svn_error_createf
        (SVN_ERR_FS_NO_SUCH_STRING, 0,
         "No such string '%s'", (const char *)query->data);
    }
  if (db_err)
    {
      DBT rerun;

      if (db_err != SVN_BDB_DB_BUFFER_SMALL)
        {
          svn_bdb_dbc_close(*cursor);
          return BDB_WRAP(fs, N_("moving cursor"), db_err);
        }

      /* We got an SVN_BDB_DB_BUFFER_SMALL (typical since we have a
         zero length buf), so we need to re-run the operation to make
         it happen. */
      svn_fs_base__clear_dbt(&rerun);
      rerun.flags |= DB_DBT_USERMEM | DB_DBT_PARTIAL;
      db_err = svn_bdb_dbc_get(*cursor, query, &rerun, DB_SET);
      if (db_err)
        {
          svn_bdb_dbc_close(*cursor);
          return BDB_WRAP(fs, N_("rerunning cursor move"), db_err);
        }
    }

  /* ### this cast might not be safe? */
  *length = (apr_size_t) result.size;

  return SVN_NO_ERROR;
}


/* Advance CURSOR by a single row in the set of rows whose keys match
   CURSOR's current location.  Set *LENGTH to the size of that next
   row.  If any error occurs, CURSOR will be destroyed.  */
static int
get_next_length(apr_size_t *length, DBC *cursor, DBT *query)
{
  DBT result;
  int db_err;

  /* Set up the DBT for reading the length of the record. */
  svn_fs_base__clear_dbt(&result);
  result.ulen = 0;
  result.flags |= DB_DBT_USERMEM;

  /* Note: this may change the QUERY DBT, but that's okay: we're going
     to be sticking with the same key anyways.  */
  db_err = svn_bdb_dbc_get(cursor, query, &result, DB_NEXT_DUP);

  /* Note that we exit on DB_NOTFOUND. The caller uses that to end a loop. */
  if (db_err)
    {
      DBT rerun;

      if (db_err != SVN_BDB_DB_BUFFER_SMALL)
        {
          svn_bdb_dbc_close(cursor);
          return db_err;
        }

      /* We got an SVN_BDB_DB_BUFFER_SMALL (typical since we have a
         zero length buf), so we need to re-run the operation to make
         it happen. */
      svn_fs_base__clear_dbt(&rerun);
      rerun.flags |= DB_DBT_USERMEM | DB_DBT_PARTIAL;
      db_err = svn_bdb_dbc_get(cursor, query, &rerun, DB_NEXT_DUP);
      if (db_err)
        svn_bdb_dbc_close(cursor);
    }

  /* ### this cast might not be safe? */
  *length = (apr_size_t) result.size;
  return db_err;
}


svn_error_t *
svn_fs_bdb__string_read(svn_fs_t *fs,
                        const char *key,
                        char *buf,
                        svn_filesize_t offset,
                        apr_size_t *len,
                        trail_t *trail,
                        apr_pool_t *pool)
{
  int db_err;
  DBT query, result;
  DBC *cursor;
  apr_size_t length, bytes_read = 0;

  svn_fs_base__str_to_dbt(&query, key);

  SVN_ERR(locate_key(&length, &cursor, &query, fs, trail, pool));

  /* Seek through the records for this key, trying to find the record that
     includes OFFSET. Note that we don't require reading from more than
     one record since we're allowed to return partial reads.  */
  while (length <= offset)
    {
      offset -= length;

      /* Remember, if any error happens, our cursor has been closed
         for us. */
      db_err = get_next_length(&length, cursor, &query);

      /* No more records? They tried to read past the end. */
      if (db_err == DB_NOTFOUND)
        {
          *len = 0;
          return SVN_NO_ERROR;
        }
      if (db_err)
        return BDB_WRAP(fs, N_("reading string"), db_err);
    }

src/subversion/subversion/libsvn_fs_base/bdb/strings-table.c  view on Meta::CPAN

     quite easily extend past this record, so we use DB_DBT_PARTIAL and
     read successive records until we've filled the request.  */
  while (1)
    {
      svn_fs_base__clear_dbt(&result);
      result.data = buf + bytes_read;
      result.ulen = *len - bytes_read;
      result.doff = (u_int32_t)offset;
      result.dlen = *len - bytes_read;
      result.flags |= (DB_DBT_USERMEM | DB_DBT_PARTIAL);
      db_err = svn_bdb_dbc_get(cursor, &query, &result, DB_CURRENT);
      if (db_err)
        {
          svn_bdb_dbc_close(cursor);
          return BDB_WRAP(fs, N_("reading string"), db_err);
        }

      bytes_read += result.size;
      if (bytes_read == *len)
        {
          /* Done with the cursor. */
          SVN_ERR(BDB_WRAP(fs, N_("closing string-reading cursor"),
                           svn_bdb_dbc_close(cursor)));
          break;
        }

      /* Remember, if any error happens, our cursor has been closed
         for us. */
      db_err = get_next_length(&length, cursor, &query);
      if (db_err == DB_NOTFOUND)
        break;
      if (db_err)
        return BDB_WRAP(fs, N_("reading string"), db_err);

      /* We'll be reading from the beginning of the next record */
      offset = 0;
    }

  *len = bytes_read;

src/subversion/subversion/libsvn_fs_base/bdb/strings-table.c  view on Meta::CPAN



/* Get the current 'next-key' value and bump the record. */
static svn_error_t *
get_key_and_bump(svn_fs_t *fs,
                 const char **key,
                 trail_t *trail,
                 apr_pool_t *pool)
{
  base_fs_data_t *bfd = fs->fsap_data;
  DBC *cursor;
  char next_key[MAX_KEY_SIZE];
  apr_size_t key_len;
  int db_err;
  DBT query;
  DBT result;

  /* ### todo: see issue #409 for why bumping the key as part of this
     trail is problematic. */

  /* Open a cursor and move it to the 'next-key' value. We can then fetch
     the contents and use the cursor to overwrite those contents. Since
     this database allows duplicates, we can't do an arbitrary 'put' to
     write the new value -- that would append, not overwrite.  */

  svn_fs_base__trail_debug(trail, "strings", "cursor");
  SVN_ERR(BDB_WRAP(fs, N_("creating cursor for reading a string"),
                   bfd->strings->cursor(bfd->strings, trail->db_txn,
                                        &cursor, 0)));

  /* Advance the cursor to 'next-key' and read it. */

  db_err = svn_bdb_dbc_get(cursor,
                           svn_fs_base__str_to_dbt(&query, NEXT_KEY_KEY),
                           svn_fs_base__result_dbt(&result),
                           DB_SET);
  if (db_err)
    {
      svn_bdb_dbc_close(cursor);
      return BDB_WRAP(fs, N_("getting next-key value"), db_err);
    }

  svn_fs_base__track_dbt(&result, pool);
  *key = apr_pstrmemdup(pool, result.data, result.size);

  /* Bump to future key. */
  key_len = result.size;
  svn_fs_base__next_key(result.data, &key_len, next_key);

  /* Shove the new key back into the database, at the cursor position. */
  db_err = svn_bdb_dbc_put(cursor, &query,
                           svn_fs_base__str_to_dbt(&result, next_key),
                           DB_CURRENT);
  if (db_err)
    {
      svn_bdb_dbc_close(cursor); /* ignore the error, the original is
                                    more important. */
      return BDB_WRAP(fs, N_("bumping next string key"), db_err);
    }

  return BDB_WRAP(fs, N_("closing string-reading cursor"),
                  svn_bdb_dbc_close(cursor));
}

svn_error_t *
svn_fs_bdb__string_append(svn_fs_t *fs,
                          const char **key,
                          apr_size_t len,
                          const char *buf,
                          trail_t *trail,
                          apr_pool_t *pool)
{

src/subversion/subversion/libsvn_fs_base/bdb/strings-table.c  view on Meta::CPAN


svn_error_t *
svn_fs_bdb__string_size(svn_filesize_t *size,
                        svn_fs_t *fs,
                        const char *key,
                        trail_t *trail,
                        apr_pool_t *pool)
{
  int db_err;
  DBT query;
  DBC *cursor;
  apr_size_t length;
  svn_filesize_t total;

  svn_fs_base__str_to_dbt(&query, key);

  SVN_ERR(locate_key(&length, &cursor, &query, fs, trail, pool));

  total = length;
  while (1)
    {
      /* Remember, if any error happens, our cursor has been closed
         for us. */
      db_err = get_next_length(&length, cursor, &query);

      /* No more records? Then return the total length. */
      if (db_err == DB_NOTFOUND)
        {
          *size = total;
          return SVN_NO_ERROR;
        }
      if (db_err)
        return BDB_WRAP(fs, N_("fetching string length"), db_err);

src/subversion/subversion/libsvn_fs_base/bdb/strings-table.c  view on Meta::CPAN

svn_fs_bdb__string_copy(svn_fs_t *fs,
                        const char **new_key,
                        const char *key,
                        trail_t *trail,
                        apr_pool_t *pool)
{
  base_fs_data_t *bfd = fs->fsap_data;
  DBT query;
  DBT result;
  DBT copykey;
  DBC *cursor;
  int db_err;

  /* Copy off the old key in case the caller is sharing storage
     between the old and new keys. */
  const char *old_key = apr_pstrdup(pool, key);

  SVN_ERR(get_key_and_bump(fs, new_key, trail, pool));

  svn_fs_base__trail_debug(trail, "strings", "cursor");
  SVN_ERR(BDB_WRAP(fs, N_("creating cursor for reading a string"),
                   bfd->strings->cursor(bfd->strings, trail->db_txn,
                                        &cursor, 0)));

  svn_fs_base__str_to_dbt(&query, old_key);
  svn_fs_base__str_to_dbt(&copykey, *new_key);

  svn_fs_base__clear_dbt(&result);

  /* Move to the first record and fetch its data (under BDB's mem mgmt). */
  db_err = svn_bdb_dbc_get(cursor, &query, &result, DB_SET);
  if (db_err)
    {
      svn_bdb_dbc_close(cursor);
      return BDB_WRAP(fs, N_("getting next-key value"), db_err);
    }

  while (1)
    {
      /* ### can we pass a BDB-provided buffer to another BDB function?
         ### they are supposed to have a duration up to certain points
         ### of calling back into BDB, but I'm not sure what the exact
         ### rules are. it is definitely nicer to use BDB buffers here
         ### to simplify things and reduce copies, but... hrm.
      */

      /* Write the data to the database */
      svn_fs_base__trail_debug(trail, "strings", "put");
      db_err = bfd->strings->put(bfd->strings, trail->db_txn,
                                 &copykey, &result, 0);
      if (db_err)
        {
          svn_bdb_dbc_close(cursor);
          return BDB_WRAP(fs, N_("writing copied data"), db_err);
        }

      /* Read the next chunk. Terminate loop if we're done. */
      svn_fs_base__clear_dbt(&result);
      db_err = svn_bdb_dbc_get(cursor, &query, &result, DB_NEXT_DUP);
      if (db_err == DB_NOTFOUND)
        break;
      if (db_err)
        {
          svn_bdb_dbc_close(cursor);
          return BDB_WRAP(fs, N_("fetching string data for a copy"), db_err);
        }
    }

  return BDB_WRAP(fs, N_("closing string-reading cursor"),
                  svn_bdb_dbc_close(cursor));
}

src/subversion/subversion/libsvn_fs_base/bdb/txn-table.c  view on Meta::CPAN

svn_error_t *
svn_fs_bdb__get_txn_list(apr_array_header_t **names_p,
                         svn_fs_t *fs,
                         trail_t *trail,
                         apr_pool_t *pool)
{
  base_fs_data_t *bfd = fs->fsap_data;
  apr_size_t const next_key_key_len = strlen(NEXT_KEY_KEY);
  apr_pool_t *subpool = svn_pool_create(pool);
  apr_array_header_t *names;
  DBC *cursor;
  DBT key, value;
  int db_err, db_c_err;

  /* Allocate the initial names array */
  names = apr_array_make(pool, 4, sizeof(const char *));

  /* Create a database cursor to list the transaction names. */
  svn_fs_base__trail_debug(trail, "transactions", "cursor");
  SVN_ERR(BDB_WRAP(fs, N_("reading transaction list (opening cursor)"),
                   bfd->transactions->cursor(bfd->transactions,
                                             trail->db_txn, &cursor, 0)));

  /* Build a null-terminated array of keys in the transactions table. */
  for (db_err = svn_bdb_dbc_get(cursor,
                                svn_fs_base__result_dbt(&key),
                                svn_fs_base__result_dbt(&value),
                                DB_FIRST);
       db_err == 0;
       db_err = svn_bdb_dbc_get(cursor,
                                svn_fs_base__result_dbt(&key),
                                svn_fs_base__result_dbt(&value),
                                DB_NEXT))
    {
      transaction_t *txn;
      svn_skel_t *txn_skel;
      svn_error_t *err;

      /* Clear the per-iteration subpool */
      svn_pool_clear(subpool);

src/subversion/subversion/libsvn_fs_base/bdb/txn-table.c  view on Meta::CPAN


      /* Ignore the "next-key" key. */
      if (key.size == next_key_key_len
          && 0 == memcmp(key.data, NEXT_KEY_KEY, next_key_key_len))
        continue;

      /* Parse TRANSACTION skel */
      txn_skel = svn_skel__parse(value.data, value.size, subpool);
      if (! txn_skel)
        {
          svn_bdb_dbc_close(cursor);
          return svn_fs_base__err_corrupt_txn
            (fs, apr_pstrmemdup(pool, key.data, key.size));
        }

      /* Convert skel to native type. */
      if ((err = svn_fs_base__parse_transaction_skel(&txn, txn_skel,
                                                     subpool)))
        {
          svn_bdb_dbc_close(cursor);
          return svn_error_trace(err);
        }

      /* If this is an immutable "committed" transaction, ignore it. */
      if (is_committed(txn))
        continue;

      /* Add the transaction name to the NAMES array, duping it into POOL. */
      APR_ARRAY_PUSH(names, const char *) = apr_pstrmemdup(pool, key.data,
                                                           key.size);
    }

  /* Check for errors, but close the cursor first. */
  db_c_err = svn_bdb_dbc_close(cursor);
  if (db_err != DB_NOTFOUND)
    {
      SVN_ERR(BDB_WRAP(fs, N_("reading transaction list (listing keys)"),
                       db_err));
    }
  SVN_ERR(BDB_WRAP(fs, N_("reading transaction list (closing cursor)"),
                   db_c_err));

  /* Destroy the per-iteration subpool */
  svn_pool_destroy(subpool);

  *names_p = names;
  return SVN_NO_ERROR;
}

src/subversion/subversion/libsvn_fs_base/notes/structure  view on Meta::CPAN

   "((some text) (that looks) (deceptively like) (directory entries))"

Et voila!  Subversion knew enough, via the `representations' and
`strings' tables, to undeltify and get that fulltext; and knew enough,
because of the node revision's "file" type, to interpret the result as
file contents, not as a directory entry list.

(Note that the `strings' table stores multiple DB values per key.
That is, although it's accurate to say there is one string per key,
the string may be divided into multiple consecutive blocks, all
sharing that key.  You use a Berkeley DB cursor to find the desired
value[s], when retrieving a particular offset+len in a string.)

Representations know nothing about ancestry -- the `representations'
table never refers to node revision id's, only to strings or to other
representations.  In other words, while the `nodes' table allows
recovery of ancestry information, the `representations' and `strings'
tables together handle deltification and undeltification
*independently* of ancestry.  At present, Subversion generally stores
the youngest strings in "fulltext" form, and older strings as "delta"s
against them (unless the delta would save no space compared to the

src/subversion/subversion/libsvn_subr/utf_width.c  view on Meta::CPAN

 * IEEE Std 1002.1-2001) for Unicode.
 *
 * http://www.opengroup.org/onlinepubs/007904975/functions/wcwidth.html
 * http://www.opengroup.org/onlinepubs/007904975/functions/wcswidth.html
 *
 * In fixed-width output devices, Latin characters all occupy a single
 * "cell" position of equal width, whereas ideographic CJK characters
 * occupy two such cells. Interoperability between terminal-line
 * applications and (teletype-style) character terminals using the
 * UTF-8 encoding requires agreement on which character should advance
 * the cursor by how many cell positions. No established formal
 * standards exist at present on which Unicode character shall occupy
 * how many cell positions on character terminals. These routines are
 * a first attempt of defining such behavior based on simple rules
 * applied to data provided by the Unicode Consortium.
 *
 * For some graphical characters, the Unicode standard explicitly
 * defines a character-cell width via the definition of the East Asian
 * FullWidth (F), Wide (W), Half-width (H), and Narrow (Na) classes.
 * In all these cases, there is no ambiguity about which width a
 * terminal shall use. For characters in the East Asian Ambiguous (A)

src/subversion/subversion/po/de.po  view on Meta::CPAN

#: ../libsvn_fs_base/bdb/changes-table.c:171 ../libsvn_fs_fs/fs_fs.c:5932
msgid "Invalid change ordering: non-add change on deleted path"
msgstr "Ungültige Reihenfolge bei Änderung: Nicht-hinzufügende Änderung auf gelöschtem Pfad"

#: ../libsvn_fs_base/bdb/changes-table.c:180 ../libsvn_fs_fs/fs_fs.c:5941
msgid "Invalid change ordering: add change on preexisting path"
msgstr "Ungültige Reihenfolge bei Änderung: Hinzufügende Änderung auf schon vorhandenem Pfad"

#: ../libsvn_fs_base/bdb/changes-table.c:272
#: ../libsvn_fs_base/bdb/changes-table.c:395
msgid "creating cursor for reading changes"
msgstr "Erzeuge Cursor zum Lesen der Änderungen"

#: ../libsvn_fs_base/bdb/changes-table.c:297
#: ../libsvn_fs_base/bdb/changes-table.c:416
#, c-format
msgid "Error reading changes for key '%s'"
msgstr "Fehler beim Lesen der Änderungen für Schlüssel »%s«"

#: ../libsvn_fs_base/bdb/changes-table.c:356
#: ../libsvn_fs_base/bdb/changes-table.c:439
msgid "fetching changes"
msgstr "Hole Änderungen"

#: ../libsvn_fs_base/bdb/changes-table.c:369
#: ../libsvn_fs_base/bdb/changes-table.c:452
msgid "closing changes cursor"
msgstr "Schließe Änderungscursor"

#: ../libsvn_fs_base/bdb/checksum-reps-table.c:87
#: ../libsvn_fs_base/bdb/checksum-reps-table.c:116
#: ../libsvn_fs_base/bdb/checksum-reps-table.c:159
msgid "Only SHA1 checksums can be used as keys in the checksum-reps table.\n"
msgstr "Nur SHA1-Prüfsummen können als Schlüssel in der Tabelle checksum-reps verwendet werden.\n"

#: ../libsvn_fs_base/bdb/checksum-reps-table.c:135
#, c-format
msgid "Representation key for checksum '%s' exists in filesystem '%s'."

src/subversion/subversion/po/de.po  view on Meta::CPAN


#: ../libsvn_fs_base/bdb/locks-table.c:116
msgid "deleting lock from 'locks' table"
msgstr "Lösche Sperre aus »locks« Tabelle"

#: ../libsvn_fs_base/bdb/locks-table.c:143
msgid "reading lock"
msgstr "Lese Sperre"

#: ../libsvn_fs_base/bdb/locks-table.c:246
msgid "creating cursor for reading lock tokens"
msgstr "Erzeuge Cursor zum Lesen der Sperrmarken"

#: ../libsvn_fs_base/bdb/locks-table.c:321
msgid "fetching lock tokens"
msgstr "Lese Sperrmarken"

#: ../libsvn_fs_base/bdb/locks-table.c:323
msgid "fetching lock tokens (closing cursor)"
msgstr "Lese Sperrmarken (schließe Cursor)"

#: ../libsvn_fs_base/bdb/miscellaneous-table.c:95
msgid "deleting record from 'miscellaneous' table"
msgstr "Lösche Eintrag aus »miscellaneous« Tabelle"

#: ../libsvn_fs_base/bdb/miscellaneous-table.c:103
msgid "storing miscellaneous record"
msgstr "Speichere »miscellaneous« Datensatz"

src/subversion/subversion/po/de.po  view on Meta::CPAN


#: ../libsvn_fs_base/bdb/rev-table.c:141
msgid "updating filesystem revision"
msgstr "Aktualisiere Dateisystemrevision"

#: ../libsvn_fs_base/bdb/rev-table.c:149
msgid "storing filesystem revision"
msgstr "Speichere Dateisystemrevision"

#: ../libsvn_fs_base/bdb/rev-table.c:179
msgid "getting youngest revision (creating cursor)"
msgstr "Hole neueste Revision (erzeuge Cursor)"

#: ../libsvn_fs_base/bdb/rev-table.c:203
msgid "getting youngest revision (finding last entry)"
msgstr "Hole neueste Revision (finde letzten Eintrag)"

#. You can't commit a transaction with open cursors, because:
#. 1) key/value pairs don't get deleted until the cursors referring
#. to them are closed, so closing a cursor can fail for various
#. reasons, and txn_commit shouldn't fail that way, and
#. 2) using a cursor after committing its transaction can cause
#. undetectable database corruption.
#: ../libsvn_fs_base/bdb/rev-table.c:213
msgid "getting youngest revision (closing cursor)"
msgstr "Hole neueste Revision (schließe Cursor)"

#: ../libsvn_fs_base/bdb/strings-table.c:94
#: ../libsvn_fs_base/bdb/strings-table.c:300
#: ../libsvn_fs_base/bdb/strings-table.c:491
msgid "creating cursor for reading a string"
msgstr "Erzeuge Cursor zum Lesen von Zeichenketten"

#: ../libsvn_fs_base/bdb/strings-table.c:124
msgid "moving cursor"
msgstr "Verschiebe Cursor"

#: ../libsvn_fs_base/bdb/strings-table.c:136
msgid "rerunning cursor move"
msgstr "Führe Verschiebung des Cursors erneut aus"

#: ../libsvn_fs_base/bdb/strings-table.c:228
#: ../libsvn_fs_base/bdb/strings-table.c:247
#: ../libsvn_fs_base/bdb/strings-table.c:265
msgid "reading string"
msgstr "Lese Zeichenkette"

#. Done with the cursor.
#: ../libsvn_fs_base/bdb/strings-table.c:254
#: ../libsvn_fs_base/bdb/strings-table.c:334
#: ../libsvn_fs_base/bdb/strings-table.c:539
msgid "closing string-reading cursor"
msgstr "Schließe Cursor zum Lesen von Zeichenketten"

#: ../libsvn_fs_base/bdb/strings-table.c:313
#: ../libsvn_fs_base/bdb/strings-table.c:505
msgid "getting next-key value"
msgstr "Hole Wert »next-key«"

#. ignore the error, the original is
#. more important.
#: ../libsvn_fs_base/bdb/strings-table.c:331

src/subversion/subversion/po/de.po  view on Meta::CPAN


#: ../libsvn_fs_base/bdb/txn-table.c:188
msgid "deleting entry from 'transactions' table"
msgstr "Lösche Eintrag aus Tabelle »transactions«"

#: ../libsvn_fs_base/bdb/txn-table.c:218
msgid "reading transaction"
msgstr "Lese Transaktion"

#: ../libsvn_fs_base/bdb/txn-table.c:251
msgid "reading transaction list (opening cursor)"
msgstr "Lese Transaktionsliste (öffne Cursor)"

#: ../libsvn_fs_base/bdb/txn-table.c:314
msgid "reading transaction list (listing keys)"
msgstr "Lese Transaktionsliste (Schlüssel auflisten)"

#: ../libsvn_fs_base/bdb/txn-table.c:317
msgid "reading transaction list (closing cursor)"
msgstr "Lese Transaktionsliste (schließe Cursor)"

#: ../libsvn_fs_base/bdb/uuids-table.c:119
msgid "get repository uuid"
msgstr "Hole UUID des Projektarchivs"

#: ../libsvn_fs_base/bdb/uuids-table.c:147
msgid "set repository uuid"
msgstr "Setze UUID des Projektarchivs"

src/subversion/subversion/po/es.po  view on Meta::CPAN

msgid "Invalid change ordering: non-add change on deleted path"
msgstr "Orden de cambios erróneo: cambio no aditivo en una ruta eliminada"

#: ../libsvn_fs_base/bdb/changes-table.c:178 ../libsvn_fs_fs/fs_fs.c:4042
#, fuzzy
msgid "Invalid change ordering: add change on preexisting path"
msgstr "Orden de cambios erróneo: cambio no aditivo en una ruta eliminada"

#: ../libsvn_fs_base/bdb/changes-table.c:270
#: ../libsvn_fs_base/bdb/changes-table.c:393
msgid "creating cursor for reading changes"
msgstr "crear cursor para leer cambios"

#: ../libsvn_fs_base/bdb/changes-table.c:295
#: ../libsvn_fs_base/bdb/changes-table.c:414
#, c-format
msgid "Error reading changes for key '%s'"
msgstr "Error leyendo cambios para la clave '%s'"

#: ../libsvn_fs_base/bdb/changes-table.c:354
#: ../libsvn_fs_base/bdb/changes-table.c:437
msgid "fetching changes"
msgstr "obtener cambios"

#: ../libsvn_fs_base/bdb/changes-table.c:367
#: ../libsvn_fs_base/bdb/changes-table.c:450
msgid "closing changes cursor"
msgstr "cerrar cursor de cambios"

#: ../libsvn_fs_base/bdb/checksum-reps-table.c:87
#: ../libsvn_fs_base/bdb/checksum-reps-table.c:116
#: ../libsvn_fs_base/bdb/checksum-reps-table.c:159
msgid "Only SHA1 checksums can be used as keys in the checksum-reps table.\n"
msgstr ""

#: ../libsvn_fs_base/bdb/checksum-reps-table.c:135
#, c-format
msgid "Representation key for checksum '%s' exists in filesystem '%s'."

src/subversion/subversion/po/es.po  view on Meta::CPAN

#: ../libsvn_fs_base/bdb/reps-table.c:203
msgid "deleting representation"
msgstr "borrar representación"

#. Handle any other error conditions.
#: ../libsvn_fs_base/bdb/rev-table.c:95
msgid "reading filesystem revision"
msgstr "leer la revisión del sistema de archivos"

#: ../libsvn_fs_base/bdb/strings-table.c:94
msgid "creating cursor for reading a string"
msgstr "crear un cursor para leer una cadena"

#: ../libsvn_fs_base/bdb/txn-table.c:99
msgid "storing transaction record"
msgstr "almacenar registro de transacción"

#: ../libsvn_fs_base/bdb/uuids-table.c:119
msgid "get repository uuid"
msgstr "obtener uuid del repositorio"

#: ../libsvn_fs_base/bdb/uuids-table.c:147

src/subversion/subversion/po/fr.po  view on Meta::CPAN

#: ../libsvn_fs_base/bdb/changes-table.c:170 ../libsvn_fs_fs/fs_fs.c:4651
msgid "Invalid change ordering: non-add change on deleted path"
msgstr "Ordre de modification invalide : modification autre qu'un ajout sur un chemin effacé"

#: ../libsvn_fs_base/bdb/changes-table.c:179 ../libsvn_fs_fs/fs_fs.c:4660
msgid "Invalid change ordering: add change on preexisting path"
msgstr "Ordre de modification invalide : ajout sur un chemin pré-existant"

#: ../libsvn_fs_base/bdb/changes-table.c:271
#: ../libsvn_fs_base/bdb/changes-table.c:394
msgid "creating cursor for reading changes"
msgstr "créant un curseur pour lire les modifications"

#: ../libsvn_fs_base/bdb/changes-table.c:296
#: ../libsvn_fs_base/bdb/changes-table.c:415
#, c-format
msgid "Error reading changes for key '%s'"
msgstr "Erreur en lisant les modifications pour la clef '%s'"

#: ../libsvn_fs_base/bdb/changes-table.c:355
#: ../libsvn_fs_base/bdb/changes-table.c:438
msgid "fetching changes"
msgstr "récupérant les modifications"

#: ../libsvn_fs_base/bdb/changes-table.c:368
#: ../libsvn_fs_base/bdb/changes-table.c:451
msgid "closing changes cursor"
msgstr "fermant le curseur de modifications"

#: ../libsvn_fs_base/bdb/checksum-reps-table.c:87
#: ../libsvn_fs_base/bdb/checksum-reps-table.c:116
#: ../libsvn_fs_base/bdb/checksum-reps-table.c:159
msgid "Only SHA1 checksums can be used as keys in the checksum-reps table.\n"
msgstr "Seules les sommes de contrôle SHA1 peuvent être utilisées comme clées dans la table 'checksum-reps'\n"

#: ../libsvn_fs_base/bdb/checksum-reps-table.c:135
#, c-format

src/subversion/subversion/po/fr.po  view on Meta::CPAN

#: ../libsvn_fs_base/bdb/reps-table.c:203
msgid "deleting representation"
msgstr "effaçant la représentation"

#. Handle any other error conditions.
#: ../libsvn_fs_base/bdb/rev-table.c:95
msgid "reading filesystem revision"
msgstr "lisant la révision du système de fichiers"

#: ../libsvn_fs_base/bdb/strings-table.c:94
msgid "creating cursor for reading a string"
msgstr "créant un curseur pour lire une chaîne de caractères"

#: ../libsvn_fs_base/bdb/txn-table.c:99
msgid "storing transaction record"
msgstr "sauvegardant l'enregistrement de la transaction"

#: ../libsvn_fs_base/bdb/uuids-table.c:119
msgid "get repository uuid"
msgstr "récupérant l'identifiant (uuid) du dépôt"

src/subversion/subversion/po/it.po  view on Meta::CPAN

msgid "Invalid change ordering: non-add change on deleted path"
msgstr "Ordine dei cambiamenti non valido: operazione diversa da add su un percorso già eliminato"

#: ../libsvn_fs_base/bdb/changes-table.c:178 ../libsvn_fs_fs/fs_fs.c:4042
#, fuzzy
msgid "Invalid change ordering: add change on preexisting path"
msgstr "Ordine dei cambiamenti non valido: operazione diversa da add su un percorso già eliminato"

#: ../libsvn_fs_base/bdb/changes-table.c:270
#: ../libsvn_fs_base/bdb/changes-table.c:393
msgid "creating cursor for reading changes"
msgstr "sto creando il cursore per leggere le modifiche"

#: ../libsvn_fs_base/bdb/changes-table.c:295
#: ../libsvn_fs_base/bdb/changes-table.c:414
#, c-format
msgid "Error reading changes for key '%s'"
msgstr "Errore nella lettura delle modifiche per la chiave '%s'"

#: ../libsvn_fs_base/bdb/changes-table.c:354
#: ../libsvn_fs_base/bdb/changes-table.c:437
msgid "fetching changes"
msgstr "sto ritrovando le modifiche"

#: ../libsvn_fs_base/bdb/changes-table.c:367
#: ../libsvn_fs_base/bdb/changes-table.c:450
msgid "closing changes cursor"
msgstr "sto chiudendo il cursore sulla modifiche"

#: ../libsvn_fs_base/bdb/checksum-reps-table.c:87
#: ../libsvn_fs_base/bdb/checksum-reps-table.c:116
#: ../libsvn_fs_base/bdb/checksum-reps-table.c:159
msgid "Only SHA1 checksums can be used as keys in the checksum-reps table.\n"
msgstr ""

#: ../libsvn_fs_base/bdb/checksum-reps-table.c:135
#, fuzzy, c-format
msgid "Representation key for checksum '%s' exists in filesystem '%s'."

src/subversion/subversion/po/it.po  view on Meta::CPAN

#: ../libsvn_fs_base/bdb/reps-table.c:203
msgid "deleting representation"
msgstr "sto cancellando la rappresentazione"

#. Handle any other error conditions.
#: ../libsvn_fs_base/bdb/rev-table.c:95
msgid "reading filesystem revision"
msgstr "sto leggendo la revisione del filesystem"

#: ../libsvn_fs_base/bdb/strings-table.c:94
msgid "creating cursor for reading a string"
msgstr "sto creando il cursore per leggere una stringa"

#: ../libsvn_fs_base/bdb/txn-table.c:99
msgid "storing transaction record"
msgstr "sto archiviando il record della transazione"

#: ../libsvn_fs_base/bdb/uuids-table.c:119
msgid "get repository uuid"
msgstr "sto leggendo l'uuid del repository"

#: ../libsvn_fs_base/bdb/uuids-table.c:147

src/subversion/subversion/po/ja.po  view on Meta::CPAN

msgid "Invalid change ordering: non-add change on deleted path"
msgstr "変更順序が不正です: 削除したパスに対して、追加ではない変更をしています"

#: ../libsvn_fs_base/bdb/changes-table.c:178 ../libsvn_fs_fs/fs_fs.c:4042
#, fuzzy
msgid "Invalid change ordering: add change on preexisting path"
msgstr "変更順序が不正です: 削除したパスに対して、追加ではない変更をしています"

#: ../libsvn_fs_base/bdb/changes-table.c:270
#: ../libsvn_fs_base/bdb/changes-table.c:393
msgid "creating cursor for reading changes"
msgstr "変更を読み込むためのカーソルを作成しています"

#: ../libsvn_fs_base/bdb/changes-table.c:295
#: ../libsvn_fs_base/bdb/changes-table.c:414
#, c-format
msgid "Error reading changes for key '%s'"
msgstr "キー '%s' の変更の読み込み中にエラーが発生しました"

#: ../libsvn_fs_base/bdb/changes-table.c:354
#: ../libsvn_fs_base/bdb/changes-table.c:437
msgid "fetching changes"
msgstr "変更を取得しています"

#: ../libsvn_fs_base/bdb/changes-table.c:367
#: ../libsvn_fs_base/bdb/changes-table.c:450
msgid "closing changes cursor"
msgstr "変更のカーソルを閉じています"

#: ../libsvn_fs_base/bdb/checksum-reps-table.c:87
#: ../libsvn_fs_base/bdb/checksum-reps-table.c:116
#: ../libsvn_fs_base/bdb/checksum-reps-table.c:159
msgid "Only SHA1 checksums can be used as keys in the checksum-reps table.\n"
msgstr ""

# TRANSLATION-FIXME: If APR supported reordering of format indicators...
#: ../libsvn_fs_base/bdb/checksum-reps-table.c:135

src/subversion/subversion/po/ja.po  view on Meta::CPAN

#: ../libsvn_fs_base/bdb/reps-table.c:203
msgid "deleting representation"
msgstr "表現を削除しています"

#. Handle any other error conditions.
#: ../libsvn_fs_base/bdb/rev-table.c:95
msgid "reading filesystem revision"
msgstr "ファイルシステムのリビジョンを読み込んでいます"

#: ../libsvn_fs_base/bdb/strings-table.c:94
msgid "creating cursor for reading a string"
msgstr "文字列を読み込むためのカーソルを作成しています"

#: ../libsvn_fs_base/bdb/txn-table.c:99
msgid "storing transaction record"
msgstr "トランザクションレコードを保存しています"

#: ../libsvn_fs_base/bdb/uuids-table.c:119
msgid "get repository uuid"
msgstr "リポジトリ UUID を取得しています"

src/subversion/subversion/po/ko.po  view on Meta::CPAN

#: ../libsvn_fs_base/bdb/changes-table.c:170 ../libsvn_fs_fs/fs_fs.c:4190
msgid "Invalid change ordering: non-add change on deleted path"
msgstr "변경 순서 오류: 삭제된 경로상에는 추가할 수 없습니다"

#: ../libsvn_fs_base/bdb/changes-table.c:179 ../libsvn_fs_fs/fs_fs.c:4199
msgid "Invalid change ordering: add change on preexisting path"
msgstr ""

#: ../libsvn_fs_base/bdb/changes-table.c:271
#: ../libsvn_fs_base/bdb/changes-table.c:394
msgid "creating cursor for reading changes"
msgstr "변경 내용을 읽기위한 커서 생성중"

#: ../libsvn_fs_base/bdb/changes-table.c:296
#: ../libsvn_fs_base/bdb/changes-table.c:415
#, c-format
msgid "Error reading changes for key '%s'"
msgstr "'%s' 키의 변경사항 읽기중 오류가 발생하였습니다"

#: ../libsvn_fs_base/bdb/changes-table.c:355
#: ../libsvn_fs_base/bdb/changes-table.c:438
msgid "fetching changes"
msgstr "변경사항 읽는중"

#: ../libsvn_fs_base/bdb/changes-table.c:368
#: ../libsvn_fs_base/bdb/changes-table.c:451
msgid "closing changes cursor"
msgstr "변경사항 읽는 커서를 닫는 중"

#: ../libsvn_fs_base/bdb/checksum-reps-table.c:87
#: ../libsvn_fs_base/bdb/checksum-reps-table.c:116
#: ../libsvn_fs_base/bdb/checksum-reps-table.c:159
msgid "Only SHA1 checksums can be used as keys in the checksum-reps table.\n"
msgstr "SHA1 체크섬만이 checksum-reps 테이블의 키로 사용될 수 있습니다.\n"

#: ../libsvn_fs_base/bdb/checksum-reps-table.c:135
#, c-format

src/subversion/subversion/po/ko.po  view on Meta::CPAN

#: ../libsvn_fs_base/bdb/reps-table.c:203
msgid "deleting representation"
msgstr "표현개체 삭제중"

#. Handle any other error conditions.
#: ../libsvn_fs_base/bdb/rev-table.c:95
msgid "reading filesystem revision"
msgstr "파일 시스템 리비전 읽는 중"

#: ../libsvn_fs_base/bdb/strings-table.c:94
msgid "creating cursor for reading a string"
msgstr "문자열 읽기용 커서 생성 중"

#: ../libsvn_fs_base/bdb/txn-table.c:99
msgid "storing transaction record"
msgstr "트랜잭션 레코드 저장중"

#: ../libsvn_fs_base/bdb/uuids-table.c:119
msgid "get repository uuid"
msgstr "저장소 uuid 얻기"

src/subversion/subversion/po/nb.po  view on Meta::CPAN

# bump - øke
# cache - hurtiglager
# cached - lagrede
# capability - evne
# changelist - forandringsliste
# checkout - hente ut, uthenting
# client - klient
# commit - sende inn, innsending
# corrupt - ødelagt, skadet
# credentials - legitimasjonsdata
# cursor - databasepeker
# daemon - tjeneste
# deprecated - avlegs
# destination - mål
# directory - katalog
# editor - tekstbehandler
# entry - post
# file handle - filreferanse
# hook - påhakning
# item - element
# lock token - låsnøkkel

src/subversion/subversion/po/nb.po  view on Meta::CPAN

msgid "Invalid change ordering: non-add change on deleted path"
msgstr "Ugyldig endringsrekkefølge: Annen endring enn tillegg på slettet filsti"

#: ../libsvn_fs_base/bdb/changes-table.c:178 ../libsvn_fs_fs/fs_fs.c:4042
#, fuzzy
msgid "Invalid change ordering: add change on preexisting path"
msgstr "Ugyldig endringsrekkefølge: Annen endring enn tillegg på slettet filsti"

#: ../libsvn_fs_base/bdb/changes-table.c:270
#: ../libsvn_fs_base/bdb/changes-table.c:393
msgid "creating cursor for reading changes"
msgstr "oppretter databasepeker for lesing av forandringer"

#: ../libsvn_fs_base/bdb/changes-table.c:295
#: ../libsvn_fs_base/bdb/changes-table.c:414
#, c-format
msgid "Error reading changes for key '%s'"
msgstr "Feil under lesing av forandringer for nøkkelen «%s»"

#: ../libsvn_fs_base/bdb/changes-table.c:354
#: ../libsvn_fs_base/bdb/changes-table.c:437
msgid "fetching changes"
msgstr "henter forandringer"

#: ../libsvn_fs_base/bdb/changes-table.c:367
#: ../libsvn_fs_base/bdb/changes-table.c:450
msgid "closing changes cursor"
msgstr "lukker databasepeker for forandringer"

#: ../libsvn_fs_base/bdb/checksum-reps-table.c:87
#: ../libsvn_fs_base/bdb/checksum-reps-table.c:116
#: ../libsvn_fs_base/bdb/checksum-reps-table.c:159
msgid "Only SHA1 checksums can be used as keys in the checksum-reps table.\n"
msgstr "Kun SHA1-kontrollsummer kan brukes som nøkler i «checksum-reps»-tabellen.\n"

#: ../libsvn_fs_base/bdb/checksum-reps-table.c:135
#, c-format

src/subversion/subversion/po/nb.po  view on Meta::CPAN

#: ../libsvn_fs_base/bdb/reps-table.c:203
msgid "deleting representation"
msgstr "sletter representasjon"

#. Handle any other error conditions.
#: ../libsvn_fs_base/bdb/rev-table.c:95
msgid "reading filesystem revision"
msgstr "leser filsystemrevisjon"

#: ../libsvn_fs_base/bdb/strings-table.c:94
msgid "creating cursor for reading a string"
msgstr "oppretter databasepeker for lesing av en streng"

#: ../libsvn_fs_base/bdb/txn-table.c:99
msgid "storing transaction record"
msgstr "lagrer transaksjonspost"

#: ../libsvn_fs_base/bdb/uuids-table.c:119
msgid "get repository uuid"
msgstr "hent depot-uuid"

src/subversion/subversion/po/pl.po  view on Meta::CPAN


#: ../libsvn_fs_base/bdb/changes-table.c:178 ../libsvn_fs_fs/fs_fs.c:4042
#, fuzzy
msgid "Invalid change ordering: add change on preexisting path"
msgstr ""
"Niewłaściwy porządek zmian: zmiana typu non-add poprzedza\n"
"usunięcie ścieżki"

#: ../libsvn_fs_base/bdb/changes-table.c:270
#: ../libsvn_fs_base/bdb/changes-table.c:393
msgid "creating cursor for reading changes"
msgstr "tworzenie kursora do czytania zmian"

#: ../libsvn_fs_base/bdb/changes-table.c:295
#: ../libsvn_fs_base/bdb/changes-table.c:414
#, c-format
msgid "Error reading changes for key '%s'"
msgstr "Błąd czytania zmian dla klucza '%s'"

#: ../libsvn_fs_base/bdb/changes-table.c:354
#: ../libsvn_fs_base/bdb/changes-table.c:437
msgid "fetching changes"
msgstr "pobieranie zmian"

#: ../libsvn_fs_base/bdb/changes-table.c:367
#: ../libsvn_fs_base/bdb/changes-table.c:450
msgid "closing changes cursor"
msgstr "zamykanie kursora zmian"

#: ../libsvn_fs_base/bdb/checksum-reps-table.c:87
#: ../libsvn_fs_base/bdb/checksum-reps-table.c:116
#: ../libsvn_fs_base/bdb/checksum-reps-table.c:159
msgid "Only SHA1 checksums can be used as keys in the checksum-reps table.\n"
msgstr "Tylko sumy kontrolne SHA1 mogą być używane jako klucze w tablicy checksum-reps.\n"

#: ../libsvn_fs_base/bdb/checksum-reps-table.c:135
#, c-format

src/subversion/subversion/po/pl.po  view on Meta::CPAN

#: ../libsvn_fs_base/bdb/reps-table.c:203
msgid "deleting representation"
msgstr "usuwanie reprezentacji"

#. Handle any other error conditions.
#: ../libsvn_fs_base/bdb/rev-table.c:95
msgid "reading filesystem revision"
msgstr "czytanie wersji systemu plików"

#: ../libsvn_fs_base/bdb/strings-table.c:94
msgid "creating cursor for reading a string"
msgstr "tworzenie kursora do czytania łańcucha znaków"

#: ../libsvn_fs_base/bdb/txn-table.c:99
msgid "storing transaction record"
msgstr "Zachowywanie rekordu transakcji"

#: ../libsvn_fs_base/bdb/uuids-table.c:119
msgid "get repository uuid"
msgstr "pobierz uuid repozytorium"

src/subversion/subversion/po/pt_BR.po  view on Meta::CPAN

msgid "Invalid change ordering: non-add change on deleted path"
msgstr "Ordem de mudança inválida: mudança não-add em caminho removido"

#: ../libsvn_fs_base/bdb/changes-table.c:178 ../libsvn_fs_fs/fs_fs.c:4042
#, fuzzy
msgid "Invalid change ordering: add change on preexisting path"
msgstr "Ordem de mudança inválida: mudança não-add em caminho removido"

#: ../libsvn_fs_base/bdb/changes-table.c:270
#: ../libsvn_fs_base/bdb/changes-table.c:393
msgid "creating cursor for reading changes"
msgstr "criando cursor para ler mudanças"

#: ../libsvn_fs_base/bdb/changes-table.c:295
#: ../libsvn_fs_base/bdb/changes-table.c:414
#, c-format
msgid "Error reading changes for key '%s'"
msgstr "Erro lendo mudanças para chave '%s'"

#: ../libsvn_fs_base/bdb/changes-table.c:354
#: ../libsvn_fs_base/bdb/changes-table.c:437
msgid "fetching changes"
msgstr "buscando mudanças"

#: ../libsvn_fs_base/bdb/changes-table.c:367
#: ../libsvn_fs_base/bdb/changes-table.c:450
msgid "closing changes cursor"
msgstr "fechando cursor de mudanças"

#: ../libsvn_fs_base/bdb/checksum-reps-table.c:87
#: ../libsvn_fs_base/bdb/checksum-reps-table.c:116
#: ../libsvn_fs_base/bdb/checksum-reps-table.c:159
msgid "Only SHA1 checksums can be used as keys in the checksum-reps table.\n"
msgstr ""

#: ../libsvn_fs_base/bdb/checksum-reps-table.c:135
#, fuzzy, c-format
msgid "Representation key for checksum '%s' exists in filesystem '%s'."

src/subversion/subversion/po/pt_BR.po  view on Meta::CPAN

#: ../libsvn_fs_base/bdb/reps-table.c:203
msgid "deleting representation"
msgstr "apagando representação"

#. Handle any other error conditions.
#: ../libsvn_fs_base/bdb/rev-table.c:95
msgid "reading filesystem revision"
msgstr "lendo revisão de sistema de arquivos"

#: ../libsvn_fs_base/bdb/strings-table.c:94
msgid "creating cursor for reading a string"
msgstr "criando cursor para ler uma string"

#: ../libsvn_fs_base/bdb/txn-table.c:99
msgid "storing transaction record"
msgstr "armazenando registro de transação"

#: ../libsvn_fs_base/bdb/uuids-table.c:119
msgid "get repository uuid"
msgstr "obtém uuid de repositório"

#: ../libsvn_fs_base/bdb/uuids-table.c:147

src/subversion/subversion/po/subversion.pot  view on Meta::CPAN

#: ../libsvn_fs_base/bdb/changes-table.c:171 ../libsvn_fs_fs/fs_fs.c:5932
msgid "Invalid change ordering: non-add change on deleted path"
msgstr ""

#: ../libsvn_fs_base/bdb/changes-table.c:180 ../libsvn_fs_fs/fs_fs.c:5941
msgid "Invalid change ordering: add change on preexisting path"
msgstr ""

#: ../libsvn_fs_base/bdb/changes-table.c:272
#: ../libsvn_fs_base/bdb/changes-table.c:395
msgid "creating cursor for reading changes"
msgstr ""

#: ../libsvn_fs_base/bdb/changes-table.c:297
#: ../libsvn_fs_base/bdb/changes-table.c:416
#, c-format
msgid "Error reading changes for key '%s'"
msgstr ""

#: ../libsvn_fs_base/bdb/changes-table.c:356
#: ../libsvn_fs_base/bdb/changes-table.c:439
msgid "fetching changes"
msgstr ""

#: ../libsvn_fs_base/bdb/changes-table.c:369
#: ../libsvn_fs_base/bdb/changes-table.c:452
msgid "closing changes cursor"
msgstr ""

#: ../libsvn_fs_base/bdb/checksum-reps-table.c:87
#: ../libsvn_fs_base/bdb/checksum-reps-table.c:116
#: ../libsvn_fs_base/bdb/checksum-reps-table.c:159
msgid "Only SHA1 checksums can be used as keys in the checksum-reps table.\n"
msgstr ""

#: ../libsvn_fs_base/bdb/checksum-reps-table.c:135
#, c-format

src/subversion/subversion/po/subversion.pot  view on Meta::CPAN


#: ../libsvn_fs_base/bdb/locks-table.c:116
msgid "deleting lock from 'locks' table"
msgstr ""

#: ../libsvn_fs_base/bdb/locks-table.c:143
msgid "reading lock"
msgstr ""

#: ../libsvn_fs_base/bdb/locks-table.c:246
msgid "creating cursor for reading lock tokens"
msgstr ""

#: ../libsvn_fs_base/bdb/locks-table.c:321
msgid "fetching lock tokens"
msgstr ""

#: ../libsvn_fs_base/bdb/locks-table.c:323
msgid "fetching lock tokens (closing cursor)"
msgstr ""

#: ../libsvn_fs_base/bdb/miscellaneous-table.c:95
msgid "deleting record from 'miscellaneous' table"
msgstr ""

#: ../libsvn_fs_base/bdb/miscellaneous-table.c:103
msgid "storing miscellaneous record"
msgstr ""

src/subversion/subversion/po/subversion.pot  view on Meta::CPAN


#: ../libsvn_fs_base/bdb/rev-table.c:141
msgid "updating filesystem revision"
msgstr ""

#: ../libsvn_fs_base/bdb/rev-table.c:149
msgid "storing filesystem revision"
msgstr ""

#: ../libsvn_fs_base/bdb/rev-table.c:179
msgid "getting youngest revision (creating cursor)"
msgstr ""

#: ../libsvn_fs_base/bdb/rev-table.c:203
msgid "getting youngest revision (finding last entry)"
msgstr ""

#. You can't commit a transaction with open cursors, because:
#. 1) key/value pairs don't get deleted until the cursors referring
#. to them are closed, so closing a cursor can fail for various
#. reasons, and txn_commit shouldn't fail that way, and
#. 2) using a cursor after committing its transaction can cause
#. undetectable database corruption.
#: ../libsvn_fs_base/bdb/rev-table.c:213
msgid "getting youngest revision (closing cursor)"
msgstr ""

#: ../libsvn_fs_base/bdb/strings-table.c:94
#: ../libsvn_fs_base/bdb/strings-table.c:300
#: ../libsvn_fs_base/bdb/strings-table.c:491
msgid "creating cursor for reading a string"
msgstr ""

#: ../libsvn_fs_base/bdb/strings-table.c:124
msgid "moving cursor"
msgstr ""

#: ../libsvn_fs_base/bdb/strings-table.c:136
msgid "rerunning cursor move"
msgstr ""

#: ../libsvn_fs_base/bdb/strings-table.c:228
#: ../libsvn_fs_base/bdb/strings-table.c:247
#: ../libsvn_fs_base/bdb/strings-table.c:265
msgid "reading string"
msgstr ""

#. Done with the cursor.
#: ../libsvn_fs_base/bdb/strings-table.c:254
#: ../libsvn_fs_base/bdb/strings-table.c:334
#: ../libsvn_fs_base/bdb/strings-table.c:539
msgid "closing string-reading cursor"
msgstr ""

#: ../libsvn_fs_base/bdb/strings-table.c:313
#: ../libsvn_fs_base/bdb/strings-table.c:505
msgid "getting next-key value"
msgstr ""

#. ignore the error, the original is
#. more important.
#: ../libsvn_fs_base/bdb/strings-table.c:331

src/subversion/subversion/po/subversion.pot  view on Meta::CPAN


#: ../libsvn_fs_base/bdb/txn-table.c:188
msgid "deleting entry from 'transactions' table"
msgstr ""

#: ../libsvn_fs_base/bdb/txn-table.c:218
msgid "reading transaction"
msgstr ""

#: ../libsvn_fs_base/bdb/txn-table.c:251
msgid "reading transaction list (opening cursor)"
msgstr ""

#: ../libsvn_fs_base/bdb/txn-table.c:314
msgid "reading transaction list (listing keys)"
msgstr ""

#: ../libsvn_fs_base/bdb/txn-table.c:317
msgid "reading transaction list (closing cursor)"
msgstr ""

#: ../libsvn_fs_base/bdb/uuids-table.c:119
msgid "get repository uuid"
msgstr ""

#: ../libsvn_fs_base/bdb/uuids-table.c:147
msgid "set repository uuid"
msgstr ""

src/subversion/subversion/po/sv.po  view on Meta::CPAN

#: ../libsvn_fs_base/bdb/changes-table.c:171 ../libsvn_fs_fs/fs_fs.c:5929
msgid "Invalid change ordering: non-add change on deleted path"
msgstr "Ogiltig ändringsordning: ändring som inte är tillägg på raderad sökväg"

#: ../libsvn_fs_base/bdb/changes-table.c:180 ../libsvn_fs_fs/fs_fs.c:5938
msgid "Invalid change ordering: add change on preexisting path"
msgstr "Ogiltig ändringsordning: tilläggsändring på redan befintlig sökväg"

#: ../libsvn_fs_base/bdb/changes-table.c:272
#: ../libsvn_fs_base/bdb/changes-table.c:395
msgid "creating cursor for reading changes"
msgstr "skapande av markör för läsning av ändringar"

#: ../libsvn_fs_base/bdb/changes-table.c:297
#: ../libsvn_fs_base/bdb/changes-table.c:416
#, c-format
msgid "Error reading changes for key '%s'"
msgstr "Fel vid läsning av ändringar för nyckeln \"%s\""

#: ../libsvn_fs_base/bdb/changes-table.c:356
#: ../libsvn_fs_base/bdb/changes-table.c:439
msgid "fetching changes"
msgstr "hämtning av ändringar"

#: ../libsvn_fs_base/bdb/changes-table.c:369
#: ../libsvn_fs_base/bdb/changes-table.c:452
msgid "closing changes cursor"
msgstr "stängning av markör för ändringar"

#: ../libsvn_fs_base/bdb/checksum-reps-table.c:87
#: ../libsvn_fs_base/bdb/checksum-reps-table.c:116
#: ../libsvn_fs_base/bdb/checksum-reps-table.c:159
msgid "Only SHA1 checksums can be used as keys in the checksum-reps table.\n"
msgstr "Bara SHA1-kontrollsummor kan användas som nycklar i \"checksum-reps\"-tabellen.\n"

#: ../libsvn_fs_base/bdb/checksum-reps-table.c:135
#, c-format

src/subversion/subversion/po/sv.po  view on Meta::CPAN


#: ../libsvn_fs_base/bdb/locks-table.c:116
msgid "deleting lock from 'locks' table"
msgstr "radering av lås från \"locks\"-tabellen"

#: ../libsvn_fs_base/bdb/locks-table.c:143
msgid "reading lock"
msgstr "läsning av lås"

#: ../libsvn_fs_base/bdb/locks-table.c:246
msgid "creating cursor for reading lock tokens"
msgstr "skapande av markör för läsning av låsidentifierare"

#: ../libsvn_fs_base/bdb/locks-table.c:321
msgid "fetching lock tokens"
msgstr "hämtning av låsidentifierare"

#: ../libsvn_fs_base/bdb/locks-table.c:323
msgid "fetching lock tokens (closing cursor)"
msgstr "hämtning av låsidentifierare (stänger markör)"

#: ../libsvn_fs_base/bdb/miscellaneous-table.c:95
msgid "deleting record from 'miscellaneous' table"
msgstr "radering av post från \"miscellaneous\"-tabellen"

#: ../libsvn_fs_base/bdb/miscellaneous-table.c:103
msgid "storing miscellaneous record"
msgstr "lagring av diversepost"

src/subversion/subversion/po/sv.po  view on Meta::CPAN


#: ../libsvn_fs_base/bdb/rev-table.c:141
msgid "updating filesystem revision"
msgstr "uppdatering av filsystemsrevision"

#: ../libsvn_fs_base/bdb/rev-table.c:149
msgid "storing filesystem revision"
msgstr "lagring av filsystemsrevision"

#: ../libsvn_fs_base/bdb/rev-table.c:179
msgid "getting youngest revision (creating cursor)"
msgstr "hämtning av yngsta revision (skapar markör)"

#: ../libsvn_fs_base/bdb/rev-table.c:203
msgid "getting youngest revision (finding last entry)"
msgstr "hämtning av yngsta revision (letar efter sista posten)"

#. You can't commit a transaction with open cursors, because:
#. 1) key/value pairs don't get deleted until the cursors referring
#. to them are closed, so closing a cursor can fail for various
#. reasons, and txn_commit shouldn't fail that way, and
#. 2) using a cursor after committing its transaction can cause
#. undetectable database corruption.
#: ../libsvn_fs_base/bdb/rev-table.c:213
msgid "getting youngest revision (closing cursor)"
msgstr "hämtning av yngsta revision (stänger markör)"

#: ../libsvn_fs_base/bdb/strings-table.c:94
#: ../libsvn_fs_base/bdb/strings-table.c:300
#: ../libsvn_fs_base/bdb/strings-table.c:491
msgid "creating cursor for reading a string"
msgstr "skapande av markör för att läsa en sträng"

#: ../libsvn_fs_base/bdb/strings-table.c:124
msgid "moving cursor"
msgstr "flyttning av markör"

#: ../libsvn_fs_base/bdb/strings-table.c:136
msgid "rerunning cursor move"
msgstr "kör om markörflyttning"

#: ../libsvn_fs_base/bdb/strings-table.c:228
#: ../libsvn_fs_base/bdb/strings-table.c:247
#: ../libsvn_fs_base/bdb/strings-table.c:265
msgid "reading string"
msgstr "läsning av sträng"

#. Done with the cursor.
#: ../libsvn_fs_base/bdb/strings-table.c:254
#: ../libsvn_fs_base/bdb/strings-table.c:334
#: ../libsvn_fs_base/bdb/strings-table.c:539
msgid "closing string-reading cursor"
msgstr "stängning av markör för ändringar"

#: ../libsvn_fs_base/bdb/strings-table.c:313
#: ../libsvn_fs_base/bdb/strings-table.c:505
msgid "getting next-key value"
msgstr "hämtning av \"next-key\"-värde"

#. ignore the error, the original is
#. more important.
#: ../libsvn_fs_base/bdb/strings-table.c:331

src/subversion/subversion/po/sv.po  view on Meta::CPAN


#: ../libsvn_fs_base/bdb/txn-table.c:188
msgid "deleting entry from 'transactions' table"
msgstr "radering av post från \"transactions\"-tabellen"

#: ../libsvn_fs_base/bdb/txn-table.c:218
msgid "reading transaction"
msgstr "läsning av transaktion"

#: ../libsvn_fs_base/bdb/txn-table.c:251
msgid "reading transaction list (opening cursor)"
msgstr "läsning av transaktionslista (öppnar markör)"

#: ../libsvn_fs_base/bdb/txn-table.c:314
msgid "reading transaction list (listing keys)"
msgstr "läsning av transaktionslista (listar nycklar)"

#: ../libsvn_fs_base/bdb/txn-table.c:317
msgid "reading transaction list (closing cursor)"
msgstr "läsning av transaktionslista (stänger markör)"

#: ../libsvn_fs_base/bdb/uuids-table.c:119
msgid "get repository uuid"
msgstr "erhållande av arkivets uuid"

#: ../libsvn_fs_base/bdb/uuids-table.c:147
msgid "set repository uuid"
msgstr "sättande av arkivets uuid"

src/subversion/subversion/po/zh_CN.po  view on Meta::CPAN

#: ../libsvn_fs_base/bdb/changes-table.c:171 ../libsvn_fs_fs/fs_fs.c:5884
msgid "Invalid change ordering: non-add change on deleted path"
msgstr "无效的改变顺序: 在已经删除的路径执行非增加修改"

#: ../libsvn_fs_base/bdb/changes-table.c:180 ../libsvn_fs_fs/fs_fs.c:5893
msgid "Invalid change ordering: add change on preexisting path"
msgstr "无效的改变顺序: 在已有路径增加修改"

#: ../libsvn_fs_base/bdb/changes-table.c:272
#: ../libsvn_fs_base/bdb/changes-table.c:395
msgid "creating cursor for reading changes"
msgstr "正在为读取修改创建指针"

#: ../libsvn_fs_base/bdb/changes-table.c:297
#: ../libsvn_fs_base/bdb/changes-table.c:416
#, c-format
msgid "Error reading changes for key '%s'"
msgstr "读取键 “%s” 的修改时出错"

#: ../libsvn_fs_base/bdb/changes-table.c:356
#: ../libsvn_fs_base/bdb/changes-table.c:439
msgid "fetching changes"
msgstr "正在获取修改"

#: ../libsvn_fs_base/bdb/changes-table.c:369
#: ../libsvn_fs_base/bdb/changes-table.c:452
msgid "closing changes cursor"
msgstr "正在关闭修改指针"

#: ../libsvn_fs_base/bdb/checksum-reps-table.c:87
#: ../libsvn_fs_base/bdb/checksum-reps-table.c:116
#: ../libsvn_fs_base/bdb/checksum-reps-table.c:159
msgid "Only SHA1 checksums can be used as keys in the checksum-reps table.\n"
msgstr "在校验和展现表中,只有 SHA1 校验和能用做键值。\n"

#: ../libsvn_fs_base/bdb/checksum-reps-table.c:135
#, c-format

src/subversion/subversion/po/zh_CN.po  view on Meta::CPAN


#: ../libsvn_fs_base/bdb/locks-table.c:116
msgid "deleting lock from 'locks' table"
msgstr "正在从“locks”表删除锁"

#: ../libsvn_fs_base/bdb/locks-table.c:143
msgid "reading lock"
msgstr "正在读取锁"

#: ../libsvn_fs_base/bdb/locks-table.c:246
msgid "creating cursor for reading lock tokens"
msgstr "正在为读取加锁令牌创建游标"

#: ../libsvn_fs_base/bdb/locks-table.c:321
msgid "fetching lock tokens"
msgstr "正在取出加锁令牌"

#: ../libsvn_fs_base/bdb/locks-table.c:323
msgid "fetching lock tokens (closing cursor)"
msgstr "正在取出加锁令牌 (正在关闭游标)"

#: ../libsvn_fs_base/bdb/miscellaneous-table.c:95
msgid "deleting record from 'miscellaneous' table"
msgstr "正在从“miscellaneous”表删除条目"

#: ../libsvn_fs_base/bdb/miscellaneous-table.c:103
msgid "storing miscellaneous record"
msgstr "正在存储杂项记录"

src/subversion/subversion/po/zh_CN.po  view on Meta::CPAN


#: ../libsvn_fs_base/bdb/rev-table.c:141
msgid "updating filesystem revision"
msgstr "正在更新文件系统版本"

#: ../libsvn_fs_base/bdb/rev-table.c:149
msgid "storing filesystem revision"
msgstr "正在存储文件系统版本"

#: ../libsvn_fs_base/bdb/rev-table.c:179
msgid "getting youngest revision (creating cursor)"
msgstr "正在取出最新版本(创建游标)"

#: ../libsvn_fs_base/bdb/rev-table.c:203
msgid "getting youngest revision (finding last entry)"
msgstr "正在取出最新版本(查找最新项)"

#. You can't commit a transaction with open cursors, because:
#. 1) key/value pairs don't get deleted until the cursors referring
#. to them are closed, so closing a cursor can fail for various
#. reasons, and txn_commit shouldn't fail that way, and
#. 2) using a cursor after committing its transaction can cause
#. undetectable database corruption.
#: ../libsvn_fs_base/bdb/rev-table.c:213
msgid "getting youngest revision (closing cursor)"
msgstr "正在取出最新版本(关闭游标)"

#: ../libsvn_fs_base/bdb/strings-table.c:94
#: ../libsvn_fs_base/bdb/strings-table.c:300
#: ../libsvn_fs_base/bdb/strings-table.c:491
msgid "creating cursor for reading a string"
msgstr "正在为读取字符串创建指针"

#: ../libsvn_fs_base/bdb/strings-table.c:124
msgid "moving cursor"
msgstr "正在移动指针"

#: ../libsvn_fs_base/bdb/strings-table.c:136
msgid "rerunning cursor move"
msgstr "重新执行游标移动"

#: ../libsvn_fs_base/bdb/strings-table.c:228
#: ../libsvn_fs_base/bdb/strings-table.c:247
#: ../libsvn_fs_base/bdb/strings-table.c:265
msgid "reading string"
msgstr "正在读取字符串"

#. Done with the cursor.
#: ../libsvn_fs_base/bdb/strings-table.c:254
#: ../libsvn_fs_base/bdb/strings-table.c:334
#: ../libsvn_fs_base/bdb/strings-table.c:539
msgid "closing string-reading cursor"
msgstr "正在关闭读取字符串的游标"

#: ../libsvn_fs_base/bdb/strings-table.c:313
#: ../libsvn_fs_base/bdb/strings-table.c:505
msgid "getting next-key value"
msgstr "正在取出 next-key 的值"

#. ignore the error, the original is
#. more important.
#: ../libsvn_fs_base/bdb/strings-table.c:331

src/subversion/subversion/po/zh_CN.po  view on Meta::CPAN


#: ../libsvn_fs_base/bdb/txn-table.c:188
msgid "deleting entry from 'transactions' table"
msgstr "正在从“transactions”表删除条目"

#: ../libsvn_fs_base/bdb/txn-table.c:218
msgid "reading transaction"
msgstr "正在读取事务"

#: ../libsvn_fs_base/bdb/txn-table.c:251
msgid "reading transaction list (opening cursor)"
msgstr "正在读取事务列表(游标已打开)"

#: ../libsvn_fs_base/bdb/txn-table.c:314
msgid "reading transaction list (listing keys)"
msgstr "正在读取事务列表(正在枚举键)"

#: ../libsvn_fs_base/bdb/txn-table.c:317
msgid "reading transaction list (closing cursor)"
msgstr "正在读取事务列表(游标已关闭)"

#: ../libsvn_fs_base/bdb/uuids-table.c:119
msgid "get repository uuid"
msgstr "获取版本库 UUID"

#: ../libsvn_fs_base/bdb/uuids-table.c:147
msgid "set repository uuid"
msgstr "设置版本库 UUID"

src/subversion/subversion/po/zh_TW.po  view on Meta::CPAN

msgid "Invalid change ordering: non-add change on deleted path"
msgstr "無效的更動順序: 對刪除路徑進行非新增的更動"

#: ../libsvn_fs_base/bdb/changes-table.c:178 ../libsvn_fs_fs/fs_fs.c:4042
#, fuzzy
msgid "Invalid change ordering: add change on preexisting path"
msgstr "無效的更動順序: 對刪除路徑進行非新增的更動"

#: ../libsvn_fs_base/bdb/changes-table.c:270
#: ../libsvn_fs_base/bdb/changes-table.c:393
msgid "creating cursor for reading changes"
msgstr "為讀取更動而建立 cursor"

#: ../libsvn_fs_base/bdb/changes-table.c:295
#: ../libsvn_fs_base/bdb/changes-table.c:414
#, c-format
msgid "Error reading changes for key '%s'"
msgstr "讀取鍵值為 '%s' 的更動時發生錯誤"

#: ../libsvn_fs_base/bdb/changes-table.c:354
#: ../libsvn_fs_base/bdb/changes-table.c:437
msgid "fetching changes"
msgstr "取得更動"

#: ../libsvn_fs_base/bdb/changes-table.c:367
#: ../libsvn_fs_base/bdb/changes-table.c:450
msgid "closing changes cursor"
msgstr "關鍵更動 cursor"

#: ../libsvn_fs_base/bdb/checksum-reps-table.c:87
#: ../libsvn_fs_base/bdb/checksum-reps-table.c:116
#: ../libsvn_fs_base/bdb/checksum-reps-table.c:159
msgid "Only SHA1 checksums can be used as keys in the checksum-reps table.\n"
msgstr ""

#: ../libsvn_fs_base/bdb/checksum-reps-table.c:135
#, fuzzy, c-format
msgid "Representation key for checksum '%s' exists in filesystem '%s'."

src/subversion/subversion/po/zh_TW.po  view on Meta::CPAN

#: ../libsvn_fs_base/bdb/reps-table.c:203
msgid "deleting representation"
msgstr "刪除表現"

#. Handle any other error conditions.
#: ../libsvn_fs_base/bdb/rev-table.c:95
msgid "reading filesystem revision"
msgstr "讀取檔案系統修訂版"

#: ../libsvn_fs_base/bdb/strings-table.c:94
msgid "creating cursor for reading a string"
msgstr "為讀取字串而建立 cursor"

#: ../libsvn_fs_base/bdb/txn-table.c:99
msgid "storing transaction record"
msgstr "儲存異動紀錄"

#: ../libsvn_fs_base/bdb/uuids-table.c:119
msgid "get repository uuid"
msgstr "取得檔案庫 uuid"

#: ../libsvn_fs_base/bdb/uuids-table.c:147

src/subversion/subversion/tests/cmdline/svntest/wc.py  view on Meta::CPAN

  if os.path.isfile(fn + ".svn-base"):
    return fn + ".svn-base"

  raise svntest.Failure("No pristine text for " + relpath)

def sqlite_stmt(wc_root_path, stmt):
  """Execute STMT on the SQLite wc.db in WC_ROOT_PATH and return the
     results."""

  db = open_wc_db(wc_root_path)[0]
  c = db.cursor()
  c.execute(stmt)
  return c.fetchall()

# ------------
### probably toss these at some point. or major rework. or something.
### just bootstrapping some changes for now.
#

def item_to_node(path, item):
  tree = svntest.tree.build_generic_tree([item.as_node_tuple(path)])

src/subversion/subversion/tests/cmdline/upgrade_tests.py  view on Meta::CPAN

  extract_dir = tempfile.mkdtemp(dir=svntest.main.temp_dir)
  for member in t.getmembers():
    t.extract(member, extract_dir)

  shutil.move(os.path.join(extract_dir, dir), sbox.repo_dir)

def check_format(sbox, expected_format):
  dot_svn = svntest.main.get_admin_name()
  for root, dirs, files in os.walk(sbox.wc_dir):
    db = svntest.sqlite3.connect(os.path.join(root, dot_svn, 'wc.db'))
    c = db.cursor()
    c.execute('pragma user_version;')
    found_format = c.fetchone()[0]
    db.close()

    if found_format != expected_format:
      raise svntest.Failure("found format '%d'; expected '%d'; in wc '%s'" %
                            (found_format, expected_format, root))

    if svntest.main.wc_is_singledb(sbox.wc_dir):
      dirs[:] = []

src/subversion/subversion/tests/cmdline/upgrade_tests.py  view on Meta::CPAN

    file_path = sbox.ospath(file)
    file_text = open(file_path, 'r').read()
    file_pristine = open(svntest.wc.text_base_path(file_path), 'r').read()
    if (file_text != file_pristine):
      raise svntest.Failure("pristine mismatch for '%s'" % (file))

def check_dav_cache(dir_path, wc_id, expected_dav_caches):
  dot_svn = svntest.main.get_admin_name()
  db = svntest.sqlite3.connect(os.path.join(dir_path, dot_svn, 'wc.db'))

  c = db.cursor()

  # Check if python's sqlite can read our db
  c.execute('select sqlite_version()')
  sqlite_ver = map(int, c.fetchone()[0].split('.'))

  # SQLite versions have 3 or 4 number groups
  major = sqlite_ver[0]
  minor = sqlite_ver[1]
  patch = sqlite_ver[2]

src/subversion/tools/bdb/erase-all-text-data.py  view on Meta::CPAN

  else:
    # Python <3.0
    confirmation = raw_input("Confirmation string> ")
  if confirmation != "YESERASE":
    print("Cancelled - confirmation string not matched")
    sys.exit(0)
  print("Opening database environment...")
  cur = None
  ctx = svnfs.Ctx(dbhome)
  try:
    cur = ctx.nodes_db.cursor()
    nodecount = 0
    newrep = skel.Rep()
    newrep.str = "empty"
    empty_fulltext_rep_skel = newrep.unparse()
    del newrep
    ctx.strings_db['empty'] = ""
    rec = cur.first()
    while rec:
      if rec[0] != "next-key":
        if (nodecount % 10000 == 0) and nodecount != 0:

src/subversion/tools/bdb/svn-bdb-view.py  view on Meta::CPAN

def am_uuid(ctx):
  "uuids"
  db = ctx.uuids_db
  ok(list(db.keys()) == [1], 'uuid Table Structure')
  ok(re.match(r'^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$',
    db[1]), 'UUID format')
  print("Repos UUID: %s" % db[1])

def am_revisions(ctx):
  "revisions"
  cur = ctx.revs_db.cursor()
  try:
    rec = cur.first()
    ctx.txn2rev = txn2rev = {}
    prevrevnum = -1
    while rec:
      rev = skel.Rev(rec[1])
      revnum = rec[0] - 1
      print("r%d: txn %s%s" % (revnum, rev.txn,
          (rev.txn not in ctx.txns_db) and "*** MISSING TXN ***" or ""))
      ok(rev.txn not in txn2rev, 'Multiple revs bound to same txn')
      txn2rev[rev.txn] = revnum
      rec = cur.next()
  finally:
    cur.close()

def am_changes(ctx):
  "changes"
  cur = ctx.changes_db.cursor()
  try:
    current_txnid_len = 0
    maximum_txnid_len = 0
    while current_txnid_len <= maximum_txnid_len:
      current_txnid_len += 1
      rec = cur.first()
      prevtxn = None
      while rec:
        if len(rec[0]) != current_txnid_len:
          rec = cur.next()

src/subversion/tools/bdb/svn-bdb-view.py  view on Meta::CPAN

                and "*** MISSING NODE ***" or ""))
        prevtxn = rec[0]
        if len(rec[0]) > maximum_txnid_len:
          maximum_txnid_len = len(rec[0])
        rec = cur.next()
  finally:
    cur.close()

def am_copies(ctx):
  "copies"
  cur = ctx.copies_db.cursor()
  try:
    print("next-key: %s" % ctx.copies_db['next-key'])
    rec = cur.first()
    while rec:
      if rec[0] != 'next-key':
        cp = skel.Copy(rec[1])
        destnode = ctx.nodes_db.get(cp.destnode)
        if not destnode:
          destpath = "*** MISSING NODE ***"
        else:
          destpath = skel.Node(destnode).createpath
        print("cpy %s: %s %s @txn %s to %s (%s)" % (rec[0],
            {'copy':'C','soft-copy':'S'}[cp.kind], cp.srcpath or "-",
            cp.srctxn or "-", cp.destnode, destpath))
      rec = cur.next()
  finally:
    cur.close()

def am_txns(ctx):
  "transactions"
  cur = ctx.txns_db.cursor()
  try:
    print("next-key: %s" % ctx.txns_db['next-key'])
    length = 1
    found_some = True
    while found_some:
      found_some = False
      rec = cur.first()
      while rec:
        if rec[0] != 'next-key' and len(rec[0]) == length:
          found_some = True

src/subversion/tools/bdb/svn-bdb-view.py  view on Meta::CPAN

            label = "%s based-on %s" % (txn.kind, txn.basenode)
          print("txn %s: %s root-node %s props %d copies %s" % (rec[0],
              label, txn.rootnode, len(txn.proplist) / 2, ",".join(txn.copies)))
        rec = cur.next()
      length += 1
  finally:
    cur.close()

def am_nodes(ctx):
  "nodes"
  cur = ctx.nodes_db.cursor()
  try:
    print("next-key: %s" % ctx.txns_db['next-key'])
    rec = cur.first()
    data = {}
    while rec:
      if rec[0] == 'next-key':
        rec = cur.next()
        continue
      nd = skel.Node(rec[1])
      nid,cid,tid = rec[0].split(".")

src/subversion/tools/bdb/svn-bdb-view.py  view on Meta::CPAN


def get_string(ctx, id):
  try:
    return ctx.get_whole_string(id)
  except DbNotFoundError:
    return "*** MISSING STRING ***"

def am_reps(ctx):
  "representations"
  ctx.bad_reps = {}
  cur = ctx.reps_db.cursor()
  try:
    print("next-key: %s" % ctx.txns_db['next-key'])
    rec = cur.first()
    while rec:
      if rec[0] != 'next-key':
        rep = skel.Rep(rec[1])
        lead = "rep %s: txn %s: %s %s " % (rec[0], rep.txn, rep.cksumtype,
            codecs.getencoder('hex_codec')(rep.cksum)[0])
        if rep.kind == "fulltext":
          note = ""

src/subversion/tools/bdb/svn-bdb-view.py  view on Meta::CPAN

          print(lead+"*** UNKNOWN REPRESENTATION TYPE ***")
      rec = cur.next()
  finally:
    cur.close()


def am_stringsize(ctx):
  "string size"
  if not ctx.verbose:
    return
  cur = ctx.strings_db.cursor()
  try:
    rec = cur.first()
    size = 0
    while rec:
      size = size + len(rec[1] or "")
      rec = cur.next()
    print("%s %s %s" % (size, size/1024.0, size/1024.0/1024.0))
  finally:
    cur.close()

src/subversion/tools/bdb/svnfs.py  view on Meta::CPAN

    close_if_not_None(self.nodes_db   )
    close_if_not_None(self.reps_db    )
    close_if_not_None(self.strings_db )
    close_if_not_None(self.env        )
    self.env = self.uuids_db = self.revs_db = self.txns_db = self.changes_db \
        = self.copies_db = self.nodes_db = self.reps_db = self.strings_db = \
        None

  # And now, some utility functions
  def get_whole_string(self, key):
    cur = self.strings_db.cursor()
    try:
      rec = cur.set(key)
      if rec is None:
        raise DBNotFoundError
      str = ""
      while rec:
        str = str + (rec[1] or "")
        rec = cur.next_dup()
    finally:
      cur.close()



( run in 0.433 second using v1.01-cache-2.11-cpan-4d50c553e7e )