Greg Stein wrote:
> Oooh! Yes.
>
> Will you be able to do that in the next couple weeks, or shall I look into it?
I can get it done before the week is out (probably in the next couple of days).
-Hyrum
> On Mon, Aug 18, 2008 at 7:23 AM, Hyrum K. Wright
> <hyrum_wright_at_mail.utexas.edu> wrote:
>> This is more of a general question, but it has applicability here.
>>
>> I noticed several uses of 'const char *checksum' below. As part of the
>> fs-rep-sharing branch, and the desire to use something other than md5
>> checksums, I added svn_checksum_t, along with various APIs to create and
>> compare checksums. I haven't had much time to work on the fs-rep-sharing
>> branch lately (but hope to soon!), but would it be useful to merge the
>> svn_checksum_t work to trunk for use in wc-ng and elsewhere?
>>
>> -Hyrum
>>
>> gstein_at_tigris.org wrote:
>>> Author: gstein
>>> Date: Sat Aug 16 13:50:17 2008
>>> New Revision: 32508
>>>
>>> Log:
>>> Initial draft of the wc_db interface, which will be used by the higher
>>> layers
>>> of the WC library. It provides storage and retrieval for the metadata and
>>> text bases of the working copy.
>>>
>>> Note: this is very incomplete, but since I'll be offline for a while, I
>>> wanted to get this in the repository for early comments on approach
>>>
>>> Added:
>>> trunk/subversion/libsvn_wc/wc_db.h
>>>
>>> Added: trunk/subversion/libsvn_wc/wc_db.h
>>> URL:
>>> http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_wc/wc_db.h?pathrev=32508
>>>
>>> ==============================================================================
>>> --- /dev/null 00:00:00 1970 (empty, because file is newly added)
>>> +++ trunk/subversion/libsvn_wc/wc_db.h Sat Aug 16 13:50:17 2008
>>> (r32508)
>>> @@ -0,0 +1,212 @@
>>> +/**
>>> + * @copyright
>>> + * ====================================================================
>>> + * Copyright (c) 2008 CollabNet. All rights reserved.
>>> + *
>>> + * This software is licensed as described in the file COPYING, which
>>> + * you should have received as part of this distribution. The terms
>>> + * are also available at http://subversion.tigris.org/license-1.html.
>>> + * If newer versions of this license are posted there, you may use a
>>> + * newer version instead, at your option.
>>> + *
>>> + * This software consists of voluntary contributions made by many
>>> + * individuals. For exact contribution history, see the revision
>>> + * history and logs, available at http://subversion.tigris.org/.
>>> + * ====================================================================
>>> + * @endcopyright
>>> + *
>>> + * @file svn_wc_db.h
>>> + * @brief The Subversion Working Copy Library - Metadata/Base-Text
>>> Support
>>> + *
>>> + * Requires:
>>> + * - A working copy
>>> + *
>>> + * Provides:
>>> + * - Ability to manipulate working copy's administrative
>>> files.
>>> + *
>>> + * Used By:
>>> + * - The main working copy library
>>> + */
>>> +
>>> +#ifndef SVN_WC_DB_H
>>> +#define SVN_WC_DB_H
>>> +
>>> +#ifdef __cplusplus
>>> +extern "C" {
>>> +#endif /* __cplusplus */
>>> +
>>> +/** Context data structure for interacting with the administrative data.
>>> + */
>>> +typedef struct svn_wc_db_t svn_wc_db_t;
>>> +
>>> +
>>> +/**
>>> + * Open the administrative database for the working copy identified by
>>> the
>>> + * (absolute) @a path. The (opaque) handle for interacting with the
>>> database
>>> + * will be returned in @a db.
>>> + *
>>> + * The configuration options are provided by @a config, and must live at
>>> + * least as long as the database.
>>> + *
>>> + * Intermediate allocations will be performed in @a scratch_pool, and the
>>> + * resulting context will be allocated in @a result_pool.
>>> + */
>>> +svn_error_t *
>>> +svn_wc__db_open(svn_wc_db_t **db,
>>> + const char *path,
>>> + svn_config_t *config,
>>> + apr_pool_t *result_pool,
>>> + apr_pool_t *scratch_pool);
>>> +
>>> +
>>> +/**
>>> + * @defgroup svn_wc__db_base BASE tree management
>>> + * @{
>>> + */
>>> +
>>> +/* ### base_add_* can also replace. should be okay? */
>>> +
>>> +/* ### can children be optional? don't think so. */
>>> +svn_error_t *
>>> +svn_wc__db_base_add_directory(svn_wc_db_t *db,
>>> + const char *path,
>>> + svn_revnum_t revision,
>>> + apr_hash_t *props,
>>> + const apr_array_header_t *children,
>>> + const char *repos_url,
>>> + const char *repos_uuid,
>>> + apr_pool_t *scratch_pool);
>>> +
>>> +
>>> +/* ### contents, props, checksum are optional */
>>> +svn_error_t *
>>> +svn_wc__db_base_add_file(svn_wc_db_t *db,
>>> + const char *path,
>>> + svn_revnum_t revision,
>>> + svn_stream_t *contents,
>>> + apr_hash_t *props,
>>> + const char *checksum,
>>> + apr_pool_t *scratch_pool);
>>> +
>>> +
>>> +svn_error_t *
>>> +svn_wc__db_base_set_props(svn_wc_db_t *db,
>>> + const char *path,
>>> + apr_hash_t *props,
>>> + apr_pool_t *scratch_pool);
>>> +
>>> +
>>> +/* ### lib pulls contents into storage. checksum optional. */
>>> +svn_error_t *
>>> +svn_wc__db_base_set_contents(svn_wc_db_t *db,
>>> + const char *path,
>>> + svn_stream_t *contents,
>>> + const char *checksum,
>>> + apr_pool_t *scratch_pool);
>>> +
>>> +
>>> +/* ### caller pushes contents into storage. checksum optional. */
>>> +svn_error_t *
>>> +svn_wc__db_base_get_writable_contents(svn_stream_t **contents,
>>> + svn_wc_db_t *db,
>>> + const char *path,
>>> + const char *checksum,
>>> + apr_pool_t *result_pool,
>>> + apr_pool_t *scratch_pool);
>>> +
>>> +
>>> +/* ### what data to keep for a symlink? props optional. */
>>> +svn_error_t *
>>> +svn_wc__db_base_add_symlink(svn_wc_db_t *db,
>>> + const char *path,
>>> + svn_revnum_t revision,
>>> + apr_hash_t *props,
>>> + apr_pool_t *scratch_pool);
>>> +
>>> +
>>> +/* ### keep the revision? */
>>> +svn_error_t *
>>> +svn_wc__db_base_add_absent_directory(svn_wc_db_t *db,
>>> + const char *path,
>>> + svn_revnum_t revision,
>>> + apr_pool_t *scratch_pool);
>>> +
>>> +
>>> +/* ### keep the revision? */
>>> +svn_error_t *
>>> +svn_wc__db_base_add_absent_file(svn_wc_db_t *db,
>>> + const char *path,
>>> + svn_revnum_t revision,
>>> + apr_pool_t *scratch_pool);
>>> +
>>> +
>>> +svn_error_t *
>>> +svn_wc__db_base_delete(svn_wc_db_t *db,
>>> + const char *path,
>>> + apr_pool_t *scratch_pool);
>>> +
>>> +
>>> +/* ### revision is for dst_path. */
>>> +svn_error_t *
>>> +svn_wc__db_base_move(svn_wc_db_t *db,
>>> + const char *src_path,
>>> + const char *dst_path,
>>> + svn_revnum_t revision,
>>> + apr_pool_t *scratch_pool);
>>> +
>>> +
>>> +/* ### add query functions */
>>> +
>>> +/** @} */
>>> +
>>> +/**
>>> + * @defgroup svn_wc__db_working WORKING tree management
>>> + * @{
>>> + */
>>> +
>>> +/* ### this section is incomplete. some funcs need updates. */
>>> +
>>> +svn_error_t *
>>> +svn_wc__db_working_add_directory(svn_wc_db_t *db,
>>> + const char *path,
>>> + const char *copyfrom_url,
>>> + svn_revnum_t copyfrom_revision,
>>> + apr_pool_t *scratch_pool);
>>> +
>>> +
>>> +svn_error_t *
>>> +svn_wc__db_working_add_file(svn_wc_db_t *db,
>>> + const char *path,
>>> + const char *copyfrom_url,
>>> + svn_revnum_t copyfrom_revision,
>>> + apr_pool_t *scratch_pool);
>>> +
>>> +
>>> +svn_error_t *
>>> +svn_wc__db_working_delete(svn_wc_db_t *db,
>>> + const char *path,
>>> + apr_pool_t *scratch_pool);
>>> +
>>> +
>>> +svn_error_t *
>>> +svn_wc__db_working_move(svn_wc_db_t *db,
>>> + const char *src_path,
>>> + const char *dst_path,
>>> + apr_pool_t *scratch_pool);
>>> +
>>> +
>>> +svn_error_t *
>>> +svn_wc__db_working_set_prop(svn_wc_db_t *db,
>>> + const char *path,
>>> + const char *name,
>>> + const svn_string_t *value,
>>> + apr_pool_t *scratch_pool);
>>> +
>>> +/** @} */
>>> +
>>> +
>>> +#ifdef __cplusplus
>>> +}
>>> +#endif /* __cplusplus */
>>> +
>>> +#endif /* SVN_WC_DB_H */
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: svn-unsubscribe_at_subversion.tigris.org
>>> For additional commands, e-mail: svn-help_at_subversion.tigris.org
>>>
>>>
>>
>>
>
Received on 2008-08-18 16:57:36 CEST