Philip,

On Thu, Sep 30, 2010 at 9:53 AM, Philip Martin
<philip.mar...@wandisco.com> wrote:
> scott mc <scott...@gmail.com> writes:
>
>> On Wed, Sep 29, 2010 at 5:45 PM, Philip Martin
>> <philip.mar...@wandisco.com> wrote:
>>
>>> Please write a log message:
>> ---------
>>

------------------------------------------------------------------------------------------------------
This patch makes use of find_directory() on Haiku to locate the proper
directories to use.  Currently B_USER_SETTINGS_DIRECTORY points to
 /boot/home/config/settings, so this puts the .subversion directory in
 /boot/home/config/settings/subversion instead of $HOME/subversion or
$HOME/.subversion.

* subversion/libsvn_subr/config_file.c
  (svn_config__sys_config_path): Set the path on Haiku to point to
"B_COMMON_SETTINGS_DIRECTORY"
                                                + SVN_CONFIG__SYS_DIRECTORY
  (svn_config__usr_config_path): Set the path on Haiku to point to
"B_USER_SETTINGS_DIRECTORY"
                                               + SVN_CONFIG__USR_SUBDIRECTORY

 * subversion/libsvn_subr/config_impl.h:
    Set SVN_CONFIG__SYS_DIRECTORY and SVN_CONFIG__USR_DIRECTORY for Haiku


-------------------------------------------------------------------------------------------------

> We like the filename and functions to be explicitly specified:
>
> * subversion/libsvn_subr/config_file.c
>  (svn_config__sys_config_path): What changed.
>
>>>> +++ subversion/libsvn_subr/config_impl.h      (working copy)
>>>> @@ -114,8 +114,11 @@
>>>>     or svn_config_get_user_config_path() instead. */
>>>>  #ifdef WIN32
>>>>  #  define SVN_CONFIG__SUBDIRECTORY    "Subversion"
>>>> -#else  /* ! WIN32 */
>>>> +#elif defined __HAIKU__ /* HAIKU */
>>>>  #  define SVN_CONFIG__SYS_DIRECTORY   "/etc/subversion"
>>>
>>> Should this be used in svn_config__sys_config_path?
>>>
>>
>> I'm unclear on what SVN_CONFIG__SYS_DIRECTORY is used for.  Through
>> several attempts I was able to move the $HOME/.subversion directory to
>> /boot/home/config/settings/subversion which fits in better with how
>> Haiku stores users' settings.  So I left SVN_CONFIG__SYS_DIRECTORY the
>> same as other OSes for now.
>
> Is Haiku multi-user? Does /boot/home/config/settings apply to one user
> or all users?
>

Haiku is single user, but plans to move to multi-user in the future.


> On Linux we have /etc/subversion for per-system settings that apply to
> all users, and $HOME/.subversion for per-user settings specific to
> each user.
>
> On Windows there are per-system and per-user registry settings as well
> as per-system and per-user directories.
>
>> -#else  /* ! WIN32 */
>> +#elif defined(__HAIKU__)
>> +  {
>> +    char folder[B_PATH_NAME_LENGTH];
>>
>> +    status_t error = find_directory(B_USER_SETTINGS_DIRECTORY, -1, false,
>> +                                    folder, sizeof(folder));
>> +    if (error)
>> +      return SVN_NO_ERROR;
>> +
>> +    *path_p = svn_dirent_join_many(pool, folder,
>> +                                   SVN_CONFIG__USR_DIRECTORY, fname, NULL);
>> +  }
>> +#else  /* ! WIN32 && !__HAIKU__ */
>> +
>>    *path_p = svn_dirent_join_many(pool, SVN_CONFIG__SYS_DIRECTORY, fname, 
>> NULL);
>>
>>  #endif /* WIN32 */
>> @@ -1117,8 +1134,21 @@
>>                                   SVN_CONFIG__SUBDIRECTORY, fname, NULL);
>>    }
>>
>> -#else  /* ! WIN32 */
>> +#elif defined(__HAIKU__)
>>    {
>> +    char folder[B_PATH_NAME_LENGTH];
>> +
>> +    status_t error = find_directory(B_USER_SETTINGS_DIRECTORY, -1, false,
>> +                                    folder, sizeof(folder));
>> +    if (error)
>> +      return SVN_NO_ERROR;
>> +
>> +    *path = svn_dirent_join_many(pool, folder,
>> +                                 SVN_CONFIG__USR_DIRECTORY, fname, NULL);
>> +  }
>> +#else  /* ! WIN32 && !__HAIKU__ */
>> +
>> +  {
>
> These two functions are returning the same path.  Is that what is intended?
>
> --
> Philip
>

Good point.  I have updated the patch to put the USR files and SYS
files in their proper directories.
I was unsure about your coding style, as to where to break long lines,
so feel free to adjust any coding style violations I might have made.
I see that the function name is different between 1.6.12 and the
current svn, is that corrent?  If this latest version looks ok, I'm
going to put together a 1.6.12 and add it into Haiku sometime this
week.  I've attached the 1.6.12 patch and the 1.7.xx-svn patches.
-scottmc

Scott McCreary
HaikuPorts

Reply via email to