<p></p>
<blockquote>
<blockquote>
<p dir="auto">Store the session part elsewhere... so that the remaining project part is largely static and invariant across systems, so that can be checked in.</p>
</blockquote>
<p dir="auto">But does anyone actually want to check in that?</p>
</blockquote>
<p dir="auto">Apparently <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/users/kugel-/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kugel-">@kugel-</a> does.</p>
<blockquote>
<p dir="auto">To be specific, when this change happens, will we, developers of Geany, want to have the project file checked in the Geany repository?</p>
</blockquote>
<ol dir="auto">
<li>Maybe.  Depends on how it's implemented.</li>
<li>Geany devs deciding not to use it this way doesn't mean <em>all</em> other developers also won't.</li>
<li>This isn't the only benefit of the config/session split.  It is just one of kugel's motivations.  A couple possibilities:</li>
</ol>
<ul dir="auto">
<li>Multiple configs could share a session or multiple sessions could share a config.  This depends on implementation and the scheme I suggested would need to be modified to support it.</li>
<li>Options could be stored in different config files with some files overriding others.  (<a class="user-mention" data-hovercard-type="user" data-hovercard-url="/users/elextr/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/elextr">@elextr</a> has mentioned being able to change "any" setting in projects...)</li>
</ul>
<blockquote>
<p dir="auto">And I assume that one of the reasons why you store your project files outside the project directory is that it isn't version-controlled so you actually aren't a user of such a feature anyway.</p>
</blockquote>
<p dir="auto">I store projects in a centralized location so I can easily switch among them.  I'm not against checking in a project file if the issues are resolved.  If a suitable project file were version controlled, I'd be able copy or symlink it.  This makes new-project creation easier for new users because they don't have to do it at all.</p>
<ul dir="auto">
<li>Projects are not version controlled now because they're cluttered with personal settings, absolute paths, and frequently changing settings that aren't suitable for being shared across multiple users.</li>
<li>Even if I don't use projects a particular way doesn't mean others won't or that I won't in the future.</li>
</ul>
<blockquote>
<blockquote>
<p dir="auto">There could be an option to not split the session from the project. In that case, relative paths would continue to work.</p>
</blockquote>
<p dir="auto">Either do it or don't do it for everyone - having to deal with settings that are hard to explain to users and having to maintain 2 different modes of session storage isn't exactly what Geany needs.</p>
</blockquote>
<p dir="auto">Different people have different preferences, so I am for having more options, provided the program logic they control is not too complex.  The current config/session split implementation is likely not the end.  With appropriate changes, preferences could very easily be moved around in different files.</p>
<blockquote>
<blockquote>
<p dir="auto">Project files could contain a copy of the hash to enable locating and moving old session files.</p>
</blockquote>
<p dir="auto">This is probably the only sane option but then you are facing problems like sharing session files by 2 different projects when you have one original_project and make its copy to project_backup - both will then share the same session files.</p>
</blockquote>
<ul dir="auto">
<li>I would guard it with an option because it affects version control.  (The hash would be stored only if the option is enabled.)</li>
<li>The hash for different projects would be different.  When the project file is copied to a new location:
<ul dir="auto">
<li>Geany would recognize that the stored hash differs from the generated hash.</li>
<li>Geany would locate the old session file via the stored hash and copy it to a new file using the new hash.</li>
<li>The sessions for the two projects would then be allowed to diverge.</li>
</ul>
</li>
</ul>
<p dir="auto">For moving to a different computer, I suggested having a preference to store the session in the project file.  If you don't like having the option, you don't have to use it.</p>
<blockquote>
<p dir="auto">Geany is a simple editor, we should come up with simple solutions that are easy to reason about and easy to explain to users.</p>
</blockquote>
<p dir="auto">Simple?  Have you seen the <a href="https://www.geany.org/manual/current/index.html" rel="nofollow">74-page manual</a>?</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/geany/geany/issues/3015#issuecomment-980484967">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AAIOWJ4D42NWIUQZ5W7RUCLUOA22DANCNFSM5ISB55XQ">unsubscribe</a>.<br />Triage notifications on the go with GitHub Mobile for <a href="https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675">iOS</a> or <a href="https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub">Android</a>.
<img src="https://github.com/notifications/beacon/AAIOWJ4ZQIUUGLBLQVARG4LUOA22DA5CNFSM5ISB55X2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOHJYQGZY.gif" height="1" width="1" alt="" /></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/geany/geany/issues/3015#issuecomment-980484967",
"url": "https://github.com/geany/geany/issues/3015#issuecomment-980484967",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>